 |
|
 |
 |
 |
| PHP - Část XIX. (MySQL - získávání dat z databáze)
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.
|
Hodnocení článku |
1 |
2 |
3 |
4 |
5 Aktuální známka: 2.66 (Počet známek: 6267)
|
|
|
 |
 |
 |