Diskuze: Externý javaskript
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 50 zpráv z 51.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
V klasickém JavaScriptu tohle nejspíš nepůjde udělat. Je to z důvodu
bezpečnosti. Napadá mě akorát možnost, načíst si ten text AJAXem nebo si
ho prostě předat nějakým serverovým jazykem (třeba PHP). Můžeš to
zkombinovat - AJAXem načítat serverový skript Taky lze použít serverový
javascript s pomocí node.js
A jsme opět u databází...
Javascript na tohle nedoporučuji kvůli indexování ve vyhledávačích.
Ďakujem. Takže bez problémov skombinujem to PHP a Javascrip?
OK, ale momentálne nemám prístup k databáze tej stránky.
Mysql tiež neovládam, takže neviem ako to vyriešiť.
Kde je PHP5, tam je i databáze. Na každém webhostingu jich bývá asi 6 druhů. Stačí si jen vybrat.
Javascript do toho raději nemíchej.
Je tam databáza, skle nemám k nej prístup. Nieje to totiž moja stránka, ktorú programujem.
Tak použij databázi SQLite, k té budeš mít přístup. Umí toho víc a je rychlejší.
Neviem pracovať so SQLite, dúfam, že tu je na to návod. Ďalej, skúsim
niečo vymyslieť
Práve som si prešiel tvoj návod INIFILE. Mne totiž bude stačiť
toto.
Myslíš, že by som to mohol využiť?
Práve som si prešiel tvoj návod INIFILE. Mne totiž bude stačiť
toto.
Myslíš, že by som to mohol použiť?
Můžeš. Dokonce to byla druhá databáze, kterou jsem ti pro zmíněný účel chtěl navrhnout. Těch záznamů by však nemělo být víc než několik set kvůli výkonu. Předpokládám, že to bude splněno.
Asi ti však časem budou chybět pokročilejší databázové funkce, např. vyhledávání nebo řazení.
Pro uživatele, kteří neznají nic jiného než "SELECT * FROM TABULKA", je to však výborná alternativa.
Zase vybíráš špatný nástroj, je jen otázkou času, než zjistíš, že v tom něco nejde a budeš se nás ptát, jak to vyřešit. Vezmi si prostě databázi. Chystám se zde udělat seriál pro MySQL, možná dnes již něco přibude, uvidím, jak mi to půjde.
Pokud by sis to přečetl pozorněji, tak samo007 nemá přístup k MySQL. Proto jsem mu navrhl SQLite, které je pro tento účel mnohem vhodnější než MySQL a bývá všude tam, kde je PHP5.
To je zas nějaká hloupost. MySQL tam je a je to ta nejjednodušší a nejpoužívanější cesta, jak na webu uložit data. Pokud neví údaje, ať si je zjistí, jinak nemá smysl něco dělat. Pokud je neví ani ten, kdo by je měl vědět, je otázka, jestli s tím má smysl ztrácet čas, protože takový projekt je evidentně k ničemu.
Proč všichni protežují MySQL před SQLite? Vždyť MySQL se pro webové aplikace nehodí.
Nehodí, ale používá se pro ně, já jsem to nevymyslel Přijde mi lepší, když si
nejprve zkusí mainstream a poté něco jiného, stejně kamkoli přijde, tam
bude pravděpodobně MySQL, je dobré si osahat právě tu. Já ale narážím
hlavně na to, že nemá ty údaje, to mi přijde zavádějící.
Mainstream neboli se stádem. Takovou odpověď jsem očekával. Kamkoli přijde, bude nejen MySQL, ale i SQLite a další 4 databáze. Proč tedy nezvolit tu lepší?
Člověk by měl začínat se stádem, než se rozhodne jít po svém. Je to jednodušší a nevidím na tom nic špatného. Beru mainstream jako základní znalost, kterou by měl programátor mít. Když poté dosáhne úrovně, kdy zjistí, že mu něco nevyhovuje, tím lépe. Ale určitě by se neměl učit něco jiného, když nezkusil to, co používá to stádo.
Jak krutě a bolestně zní tvá pravda
Na druhé straně databáze SQLite patří mezi nejpoužívanější databáze vůbec. Možná o tom jenom nevíš.
Údaje by som si mohol k MYSQL zohnať, ale je to zdĺhavá cesta a
vysvetliť to je tiež zdĺhavé.
Asi využijem na začiatok INIFILE, pretože sa mi zdá jednoduchý a podobné
niečo som skúšal v Gamemakeru a potrebujem sa naučiť úplný základ (moje
znalosti= 0). Potom prejdem na iné databázy.
V tomto prípade nebudem potrebovať nič iné ako INIFILE a všetko čo
poskytuje, mi postačí.
Zámerne potrebujem niečo takéto jednoduché. Viem prečo to robím. Ja si
myslím, že dobré bude pre mňa začať s tým INIFILE, pretože sa potrebujem
naučiť aj vytvoriť obyčajné spojenie.
David Hartinger: Veď človek by sa mal začať učiť najprv niečo jednoduché a az potom ísť ďalej. Znie to akoby si vravel, že najprv sa treba naučiť binárny kód a až potom iné odvodené kódy (len ako príklad)
Ano a databáze jsou extrémně jednoduché, jen o tom nevíš. Ale evidentně máš svou hlavu, jen jsem ti chtěl ušetřit práci, až zas budeš vymýšlet jak něco udělat v nástroji, který pro to není určěný.
Když se podíváš třeba na
http://www.itnetwork.cz/…-a-modularne
tak po změně jednoho řádku pro otvírání databáze to můžeš použít i
pro SQLite.
Tomu bych i věřil, je to dobrá databáze a určitě ji používá hodně aplikací. Trochu mi tato situace připomíná Ruby on Rails na naší škole. Zatímco ti pokročilí, co přišli od PHP a MySQL (bylo tam Ruby a SQLite) si mnuli ruce a jásali, v čem je to lepší, začátečníkům to vůbec nic nedalo a měli problémy někam nahrát funkční web. To proto, že k tomu bylo potřeba více hledání a zjišťování, než kdyby se u nás učilo PHPčko, co se jen plácne na FTP a běží to. S SQLite jsem nikdy nedělal (kromě ROR), ale třeba u freehostingů jsem zahlédl vždy jen nastavení k MySQL. To samé jsou pak tutoriály, kde k PDO potřebuješ umět objekty. Nabastlit něco v MySQL mi přijde pro člověka co to nikdy neviděl snažší.
Zrovna aktuality bych do INIFILE také nedával. INIFILE je určeno spíš pro neměnná data nevelkého rozsahu a hodí se pro implementaci slovníku. Aktuality nejsou slovník.
"k PDO potřebuješ umět objekty"
Jak libě zní tato hudba k mým uším. Spousta vývojářů se modlí ke svatému grálu jménem ORM a tady ho mají u nosu.
SQLite má i ovladač podobný ovladači MySQL, ale nepropaguji ho, protože je zastaralý. Nicméně je stejně funkční a stejně použitelný jako ovladač MySQL. Budoucnost má PDO a to pro obě databáze.
PDO se dá používat i v neobjektovém prostředí, ale nějak se mi zatím nechtělo na to psát tutoriál. Myslíš si, že to má význam?
Myslím, že by to mělo obrovský význam, sám jsem teď v PDO dělal něco pro ten Tetris (teď si s tím chvíli dávám pauzu) a nebylo to úplně jednoduché. Chtěl jsem to neobjektové a co nejkratší, jen do 2 skritpů. Hned jsem narazil na problém, prý když to nedám do výjimky, tak se mi v chybě vypíše heslo. Možná to jde vypnout v nastavení, raději jsem tam dal tu výjimku. Připojení mám v obou souborech, nevěděl jsem, jak to nasdílet a dělat nějaký statický obal se mi pro tak malý účel nechtělo.
V MySQL jsme v původním Islandsoftu pracovali takto:
require('pripoj.php');
mysql_query('dotaz');
Vůbec nic jiného jsme neřešili a bylo to opravdu jednoduché. Vlastně ani nevím, jestli to takhle jde v MySQLi, protože tam se již možná musí předávat spojení při volání mysqli_query.
Jak lze PDO použít neobjektově, když mám třeba index.php a do něj vložím menu.php, paticka.php a clanek.php jen pomocí require?
Tak nevím, jestli jsem nepřecenil své schopnosti. Úplně procedurálně bych to asi nezvládl, s objekty je to mnohem jednodušší. Tvůj kompromis mohl být dobrou volbou.
"mám třeba index.php a do něj vložím menu.php, paticka.php a clanek.php ..."
Uh. To všecho includuješ? Já to všechno dávám do jedné šablony, abych měl celou stránku hezky pohromadě a také abych si za všech okolností zachoval validitu výstupu.
No tady máme MVCčko, ale ten starý web takhle fungoval. Zezačátku to bylo docela přínosné, protože jsme PHP neuměli a bylo to jednoduché, samozřejmě jakmile měl ten projekt pár set řádků, tak je to nepoužitelné. Ale na první web myslím ideální způsob.
Chtěl bych udělat něco, kde by se prostě napsalo na začátek skriptu připoj (nemuselo se do každého zadávat heslo) a poté se volaly procedurálně dotazy bez ohledu na nějaký kontext připojení.
PDO je objektový ovladač databází, který je součástí PHP. Velmi užitečný, ale jen pro ty, kteří se nebrání objektovému programování.
PHP ovladač pro práci s několika databázemi http://www.itnetwork.cz/…sql-databazi
Myslel jsem si, že návody, na které tě odkázal Drahomír Hanák, jsou dostatečně detailní. Také nevím vše, ale většinu problémů vyřeší googlovský dotaz "PHP PDO".
Ďakujem, skúsim to. Ale teraz zatiaľ použijem INIFILES. To sa na ten
kalendár celkom hodí. Údaje neplánujem meniť. Postupne ich budem
pridávať, ale potom to tak ostane, pretože sviatky sa nemenia a na ďalší
rok budú rovnaké
INIFILE se hodí na úložiště typu key-value. Jenže tady klíč nemáš, protože k některému datu můžeš mít víc událostí. To se už může hodit lépe CSV.
CSV je zkratka pro Comma Separated Values neboli hodnoty oddělené čárkami. Je to velmi jednoduchý formát dat používaný i jako vnitřní formát MySQL. Na každé řádce tabulky jsou hodnoty sloupců odděleny čárkami, příp. jiným oddělovačem.
Často se v tomto formátu dají stáhnout např. výpisy z banky.
Ano, niečo som o tom dávnejšie čítal (nevedel som, že sa to volá CSV), ale neviem ako sa to prakticky používa. Napr. aká je koncovka súboru a ako sa volajú hodnoty.
Přípona bývá kupodivu "csv", ale není to striktně dáno. Běžně se to edituje přímo editorem, dá se to naimportovat do tabulkového procesoru, obvykle funguje i export. Ukládají se do toho čísla a krátké texty. Řetězec obsahující oddělovač musí být v uvozovkách.
V PHP jsou pro práci s CSV vhodné funkce fgetcsv()
a
fputcsv()
.
Pokud bys v textu neměl čárky, tak by to ve tvém případě vypadalo asi takto:
5.7., Sv. Cyril a Metod
15.8., Nanebovzatie Panny Márie
Pokud bys chtěl použít původní formát, tak pro čtení můžeš
použít funkce file()
a explode()
.
Ďakujem
A čo tak použiť obyčajný TXT? Niekde mám zapísanú funkciu s niečím ako
open list či ako. To si už nájdem...
Však jsem napsal, že máš použít funkci file()
. Načte ti
celý soubor do pole, řádek po řádku.
Veď ano, ale ja som mal namysli iný spôsob. Ale neviem si spomenúť, ako sa to volá.
Však jsem psal. Zavoláš funkci file()
, která ten soubor
načte do pole. Proč to musím opakovat?
Zobrazeno 50 zpráv z 51.