PHP-GTK 7. - MySQL - Builder.cz - Informacni server o programovani

Odběr fotomagazínu

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:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kde se koná výstava fotografií Luďka Vojtěchovského?

V dnešní soutěži hrajeme o:



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.
Přihlašovací okno

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.

//nejlepší bude malý příklad
$box = &new GtkHBox();
...
$textove_pole = &new GtkEntry();
$box->add($textove_pole);
$textove_pole->grab_focus();

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.

function presun($entry,$kam) {
$kam->grab_focus();
}
...
$input_server = &new GtkEntry();
...
$input_server->connect('activate','presun',$input_jmeno);

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í.
Okno pro zadání dotazu

Zajímavější je poslední okno - výsledek dotazu. Konkrétně spíše ten seznam položek.
Výsledek dotazu

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):

Tématické zařazení:

 » Rubriky  » PHP  

 » Rubriky  » Web  

 

 

 

Nejčtenější články
Nejlépe hodnocené články

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: