[Grafika] [WebTip] [Fotografování] [Galerie] [MujMac] [Printing]
  Redakce: info (at) builder.cz   Inzerce: reklama (at) grafika.cz
Diskuzní fóra
.Net (68472)
ASP (1591)
ActiveX (168)
Allegro (136)
Assembler (3926)
C++ Builder (23160)
C/C++ (44499)
Databáze (30680)
Delphi (78808)
DelphiX (1655)
DirectX (1464)
Java (39508)
JavaScript (12598)
Matematické programy (2178)
OOP a UML (732)
OpenGL (6920)
Php (65225)
PowerBuilder (464)
Problémy a algoritmy (10473)
Programování v Linuxu (2000)
Právo a programování (3384)
Python (1353)
Ruby (136)
Visual Basic (12078)
Visual C++ (12956)
Wap (56)
Web (10895)
Web servery (5549)
Win32 (13553)
Windows CE (865)
XML/XSL (1860)
Textová inzerce
Služby Builder.cz
  • Bazar - koupím(0)
  • Bazar - prodám(0)
  • Hledám práci(0)
  • Nabízíme práci(0)
  • Projekty(0)
  • 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.
    Php krok za krokem
    Předchozí díl: PHP - Část XVIII. (Vkládání dat do databáze)

    Následující díl: PHP - Část XX. (SQL - získávání dat z databáze II.)
    Autor: Marek Bražina
    Rubrika: PHP
    Publikováno: 06.11. 2000
     Tisk článku
    Poslat odkaz emailem
     

    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.


    Zpět na začátek stránky

    Autor: Marek Bražina
    Klikni pro další články autora

    Hodnocení článku
    1 | 2 | 3 | 4 | 5
    Aktuální známka: 2.66
    (Počet známek: 6267)

    Komentáře k článku
    midas27.09.19:00Nefunkční získání dat- chybová hláška
    MIUSS07.04.17:43Problémy s konstanty?
    Jaj18.06.14:56RE: Problémy s konstanty?
    Martin MaKr Kratochvil14.03.9:10Nepresnost
         





    info@builder.cz
    Vydává Grafika Publishing, s.r.o.
    Copyright (c) 1997-2002 Všechna práva vyhrazena