PHP - Část XIX. (MySQL - získávání dat z databáze) - 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:



PHP

PHP - Část XIX. (MySQL - získávání dat z databáze)

6. listopadu 2000, 00.00 | pokračování práce s SQL pod PHP. Dnes popis získávání dat z databáze, příkaz SELECT.

Z minulých článků již umíme vytvořit novou databázi, umíme v ní vytvořit novou tabulku a vložit do ní nějaké hodnoty. Ještě s těmito hodnotami ale neumíme dále pracovat, tedy je vypsat z databáze. To bude předmětem dnešního a možná několika dalších článků. Výpis dat z databáze se provádí pomocí nejpoužívanějšího příkazu jazyka SQL. Základní struktura příkazu:

SELECT seznam požadovaných položek FROM seznam tabulek
                   WHERE podmínka
                   GROUP BY seznam položek
                   HAVING skupinová podmínka
                   ORDER BY třídění;

Jelikož tyto články nejsou příručkou jazyka SQL, budeme se věnovat jen základním operacím s tímto příkazem. Zájemcům o kompletní seznámení s jazykem SQL vřele doporučuji knihu od Milana Šimůnka - SQL kompletní kapesní průvodce (nakl. Grada). Dnes se s tímto příkazem naučíme jen jednoduše vypsat nějaká data z tabulky a následně tato data získat pro práci v PHP skriptech. Co znamená WHERE, GROUP BY, HAVING a ORDER BY si vysvětlíme někdy v budoucnu. Budeme pokračovat v příkladě z minulého článku. V naší tabulce máme zatím jeden záznam, a to o zaměstnanci Janu Novákovi. Nyní si do databáze přidáme ještě jeden záznam:

$sql = "INSERT INTO zamestanci VALUES (
                                    \"401015/3167\",
                                    \"Jana Nováková\",
                                    \"Kocourkov 333\",
                                    15000);";
MySQL_DB_Query("php", $sql, $spojeni);

Nyní již tedy máme v tabulce záznamy dva - o panu Novákovi a o paní Novákové. Výpis všech informací o nich provedeme příkazem SELECT v následujícím tvaru:

SELECT * FROM zamestnanci;

Místo jednotlivých požadovaných položek k výpisu jsem zde uvedl znak *, což znamená, že se mají vypsat všechny položky tabulky od každého záznamu. Kdybychom tedy tento příkaz zadali přímo do řádkového klienta MySQL, získali bychom na obrazovce výstup v podobě tabulky, která by obsahovala všechny hodnoty dané databázové tabulky. Abychom mohli tato data zpracovávat pomocí PHP skriptů, musíme použít jednu z několika PHP funkcí pro získání dat z databáze. Máme několik možností, v jaké podobě data dostaneme - mohou být např. uložena v poli, v asociativním poli nebo dokonce v objektu. Zde je syntaxe a popis těchto funkcí:

array MySQL_Fetch_Row(výsledek SQL příkazu);

- tato funkce načte jeden záznam výsledku SQL příkazu do pole, jehož jeden prvek obsahuje hodnotu jedné požadované položky tabulky. Index prvku pole odpovídá pořadí položek v tabulce. Pokud funkce proběhne v pořádku, vrací TRUE, v opačném případě FALSE. Vypadá to složitě, ale je to velmi jednoduché - vše si ukážeme za chvíli.

array MySQL_Fetch_Array(výsledek SQL příkazu);

- tato funkce načte jeden záznam výsledku SQL příkazu do asociativního pole, jehož jeden prvek obsahuje hodnotu jedné požadované položky tabulky. Index prvku pole je totožný s názvem dané položky tabulky. Pokud funkce proběhne v pořádku, vrací TRUE, v opačném případě FALSE.

object MySQL_Fetch_Object(výsledek SQL příkazu);

- tato funkce načte jeden záznam výsledku SQL příkazu do objektu, jehož jedna členská proměnná obsahuje hodnotu jedné požadované položky tabulky. Jméno členské proměnné je odvozeno od jména položky v tabulce. Pokud funkce proběhne v pořádku, vrací TRUE, v opačném případě FALSE.

Nyní si tedy ukážeme, jak získat data z databáze pro práci s nimi v PHP skriptech. Ukážeme si jednotlivě použití všech předešlých funkcí. Pro všechny však bude platit, že je vytvořeno spojení s databázovým serverem ($spojeni) a v $sql je uložen tento SQL příkaz:

$sql = "SELECT * FROM zamestnanci;";

Použití funkce MySQL_Fetch_Row(); pro výpis všech hodnot tabulky:

$vysledek = MySQL_DB_Query("php", $sql, $spojeni);
while($zaznam = MySQL_Fetch_Row($vysledek)):
   echo $zaznam[0]."<br>";
   echo $zaznam[1]."<br>";
   echo $zaznam[2]."<br>";
   echo $zaznam[3]."<br><br>";
endwhile;

Použití funkce MySQL_Fetch_Array(); pro výpis všech hodnot tabulky:

$vysledek = MySQL_DB_Query("php", $sql, $spojeni);
while($zaznam = MySQL_Fetch_Array($vysledek)):
   echo $zaznam[rc]."<br>";
   echo $zaznam[jmeno]."<br>";
   echo $zaznam[adresa]."<br>";
   echo $zaznam[plat]."<br><br>";
endwhile;

Použití funkce MySQL_Fetch_Object(); pro výpis všech hodnot tabulky:

$vysledek = MySQL_DB_Query("php", $sql, $spojeni);
while($zaznam = MySQL_Fetch_Object($vysledek)):
   echo $zaznam->rc."<br>";
   echo $zaznam->jmeno."<br>";
   echo $zaznam->adresa."<br>";
   echo $zaznam->plat."<br><br>";
endwhile;

Vidíte, že použití jednotlivých funkcí se liší pouze ve způsobu uložení hodnot. Záleží tedy jen na vás, kterou funkci budete používat.

Pokud chcete z databáze vypsat je určité položky, uveďte je za příkaz SELECT. Pro vypsání jen jména a adresy tedy použijeme tento SQL příkaz:

$sql = "SELECT jmeno, adresa FROM zamestnanci;";

Jako úvod příkazu SELECT to dnes stačí, příště budeme pokračovat v popisu možností tohoto příkazu.

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: