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):
- PHP část I. - Úvod do jazyka
- PHP část II. - Instalace
- PHP - Část V. (Operátory)
- PHP - Část VIII.
- PHP - Část IX. (Vlastní funkce)
- PHP - Část X. (Proměnné ve funkcích)
- PHP - Část XI.
- PHP - Část XII. (Regulární výrazy)
- PHP - Část XIII. (Regulární výrazy podruhé)
- PHP - Část XIV. (PHP a databáze)
- PHP - Část XV. (Instalace MySQL ve Windows)
- PHP - Část XVI. (Instalace MySQL na LINUXu)
- PHP - Část XVII. (MySQL - vytvoření nové databáze)
- PHP - Část XVIII. (Vkládání dat do databáze)
- PHP - Část XIX. (MySQL - získávání dat z databáze)
- PHP - Část XX. (SQL - získávání dat z databáze II.)
- PHP - Část XXI. (SQL - získávání dat z databázových tabulek III)
- PHP - Část XXII. (MySQL - modifikace a mazání dat v tabulce)
- PHP část XXIII. - MySQL - přístupová práva
- PHP část XXIV. - PostgreSQL
- PHP část XXV. - Cookies
-
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