Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
PHP
PHP-GTK 7. - MySQL
23. srpna 2001, 00.00 | Spojení PHP a MySQL je velmi rozšířené a svou oblíbenou databázi nemusíte v PHP-GTK opouštět.
Máte-li v plánu vývoj nějaké rafinovanější aplikace, pravděpodobně počítáte s použitím SQL databáze. A vzhledem k oblíbenosti MySQL, to zřejmě bude MySQL :-) Takže vás zkusím připravit na pár záludností, které vás mohou potkat.
Propojení s MySQL funguje samozřejmě naprosto identicky jako v PHP. Hned ze začátku vás však může potkat jeden zádrhel - přístupová práva. Navrhnu možný scénář: malá (či velká) firma s menší vnitřní sítí, tedy několik klientských počítačů přistupuje k jednomu serveru. Potíž je v tom, že aplikace se spouští na klientském počítači, kdežto MySQL běž na serveru. Proto musíte uživateli, který se bude k databázi připojovat, povolit přístup i z jiných počítačů než localhost (jak je MySQL standardně nastaveno). Podívejte se tedy na databázi mysql, v ní tabulku user a zde sloupec Host. V tomto sloupci určíte, z kterých strojů se může daný uživatel k databázi připojit. Uveďte zde buď jméno nebo IP adresu jeho počítače, případně % pro přístup odkudkoli. Nezapomeňte na mysqladmin reload. Potom už by vás nemělo nic překvapit.
Připravil jsem pro vás malou ukázkovou aplikaci, kterou si můžete stáhnout - gtk-mysql.zip. Používám v ní funkce pro převod z/do UTF8 (viz 3. díl), která je k dostání zde. Takže si aplikaci stáhněte a prozkoušejte a já tady popíšu několik zajímavostí.
Uvítá vás okno, v němž zadáte připojovací údaje - server, jméno a heslo. Políčka pro zadávání se chovají velmi rafinovaně - hned po otevření okna se aktivuje pole pro server, takže můžete rovnou začít psát. Po zapsání serveru stačí stisknout Enter a kurzor se přesune do pole pro jméno, stejně tak po zadání jména. Po zadání hesla se stiskem Enter spustí funkce, která zařídí připojení k MySQL serveru.
Pokud chcete, aby se kurzor automaticky po otevření okna umístil do některého pole, použijte funkci grab_focus(); Tuto funkci widgetu GtkEntry musíte ale v programu zapsat až za funkci, která umístí GtkEntry do kontejneru.
|
Nyní k onomu přeskakování po stisku Enteru. I pro textové pole můžete napojit funkce na různé události. Událost, která nastane při stisku klávesy Enter, se jmenuje activate. Jak umístit kurzor do textového pole, jste se dozvěděli o kousek výše. Nic už teď nebrání vytvoření funkce, které sdělíte, do jakého pole má kurzor umístit.
|
Teď trochu vysvětlení: první dva paramtery funkce connect() jsou jasné - událost a jméno volané funkce - a jako další můžete uvádět parametry, které chcete předat funkci (v našem případě je to textové pole, do kterého se má přesunout kurzor. Podíváte-li se na funkci presun(), uvidíte tam dva parametry. Při volání funkcí při události se totiž předává jeden parametr navíc - a to prvek, který tuto funkci vyvolal.
Poslední zajímavostí úvodního okna je skryté heslo. Toho dosáhnete snadným použitím funkce $input_heslo->set_visibility(FALSE);.
Po úspěšném připojení vyskočí okno, v němž můžete zadat SQL příkaz pro databázi. Na něm ani nic zajímavého není.
Zajímavější je poslední okno - výsledek dotazu. Konkrétně spíše ten seznam položek.
Abyste mohli vytvořit takový seznam, musíte si nejprve připravit pole, které bude obsahovat názvy sloupců. Máme-li pole $nazvy, seznam vytvoříme příkazem $clist = &new GtkCList(count($nazvy), $nazvy); První parametr určuje počet sloupců a druhý je pole s názvy. Názvy sloupců se přiřadí přesně v tom pořadí, jak za sebou následují v poli.
Každý řádek tohoto seznamu si také připravte jako pole - co položka pole, to jedna buňka. Takže máme tentokrát pole $radek, které přidáme do seznamu pomocí funkce $clist->append($radek);. O pořadí platí stejná poučka jako u názvů sloupců.
Doufám, že se mi podařilo nastínit vám další zajímavé schopnosti PHP-GTK, které snad využijete. A nebojte se napsat (ať už na či do diskuse), co byste se rádi dozvěděli v dalších dílech.
Obsah seriálu (více o seriálu):
- Seznámení s PHP-GTK
- PHP-GTK 2. - Instalace
- PHP-GTK 3. - Užitečné utility
- PHP-GTK 4. - Hrátky s okny
- PHP-GTK 5. - Texty
- PHP-GTK 6. - Rozmístění a tlačítka
- PHP-GTK 7. - MySQL
Diskuse k článku
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007