Dnes: 18. ledna 2018    | Registrace | Hledáme | Redakce | Info | Testy | Školení | Ocenění | Nápověda | Čtenář: nepřihlášen

Rychlé odkazy
  • Hlavní stránka
  • Seznam rubrik
  • Ankety
  • Editoriály
  • TOP 15
  • KONFERENCE 2008
  • KONFERENCE 2007
  • KONFERENCE 2006
  • KONFERENCE 2005
  • KONFERENCE 2004
  • Sborník
  • Testy
  • Virtuální školení
  • Personalizace


  • Hledáte práci?
    Hledáme redaktora - pojďte s námi tvořit Databázový svět!

    Vyhledávání

    Hledej
    na Databázovém světě!



    Rozšířené vyhledávání

    Rubriky
    Aktuality
    Bezpečnost
    Business
    Česká scéna
    Datové sklady
    Dokumentace
    Dotazovací jazyky
    Hardware
    Historie
    Komentáře
    Literatura
    Metodologie
    Nondb
    Open Source
    Poradna
    Produkty
    Případové studie
    Redakce
    Rozhovory
    Standardy
    Technologie
    Tipy - triky
    Tiskové zprávy
    Vývoj
    Vývojové nástroje
    Zajímavosti

    Co je to?
    Datový sklad
    Tento pojem poprvé formuloval koncem 80. let William Inmon jako strategii přístupu k datům určeným pro rozsáhlé analýzy. V případě datového skladu hovoříme o historických, časově rozlišených, agregovaných, průběžně rozšiřovaných datech uspořádaných pro podporu potřeb managementu.

    Akce
    Dynamická Datová Centra
    - na semináři se seznámíte s komplexním řešením a koncepcí Dynamických Datových Center od Fujitsu Siemens Computers se speciálním důrazem na řešení FlexFrame.

    Textová inzerce
    IBPhoenix - Vše o InterBase a Firebirdu.

    Smějete se rádi? - Pak je pro vás Vtipník to pravé!

    Prodejce reklamy - Hledáme schopného prodejce reklamního prostoru, možnost i externí spolupráce.

    Přihlášený čtenář
    Nepřihlášený čtenář

    O portálu
    Databázový svět
    ISSN: 1213-5933

    Web je optimalizován pro rozlišení 1024x768, nicméně kromě větších rozlišení podporujeme i 800x600. Podrobnosti najdete zde.

    Chcete-li mít kdykoliv možnost zkontrolovat obsah našeho portálu, můžete využít podporu rss. Podrobnosti najdete zde.
    Vyvíjíme databázový a informační systém XXV.


    [Metodologie] - V dnešní - poslední – části našeho rozsáhlého seriálu o základních principech a o vývoji databázových a informačních systémů si vytvoříme skript, který bude propojen s databází, z níž bude načítat potřebná data pro zobrazení výsledku. Pětadvacáté pokračování sice tento seriál uzavře, nicméně nemusí být všem dnům – a tedy ani dílům – konec.



    Úlohou našeho skriptu bude poskytnout náhled na aktuální stav vaší databáze z hlediska existujících tabulek. Dále umožní zadat základní dotazy SQL a samozřejmě poté zobrazí výsledky těchto dotazů. Existující tabulky nastavené databáze zobrazíme ve formulářovém prvku select, dotazy pak budeme zadávat do textového pole textarea.

    Na začátku skriptu je nutno do proměnné $host zadat adresu počítače, na kterém běží MySQL server. Dále – je-li to nutné pro přístup k databázi – nastavíme do proměnných $uziv a $heslo potřebné uživatelské jméno a heslo a nakonec do proměnné $db název databáze, se kterou budeme pracovat.

    Ve skriptu následuje zavádění formulářového prvku select (rozbalovací seznam), do kterého se předpřipraví názvy nalezených tabulek. Z minulého dílu již známe funkce pro navázání a ukončení spojení s databází – MySQL_Connect() a MySQL_Close(). Jako parametry pro navázání spojení se využívají hodnoty přednastavené v úvodu skriptu. Názvy všech dostupných tabulek v databázi zjistí funkce MySQL_List_Tables().

    V následujícím cyklu for jsou jednotlivé názvy tabulek načítané pomocí funkce MySQL_TableName() začleňované do rozbalovacího seznamu. Chceme-li některou tabulku nastavit jako výchozí zobrazenou položku select, můžeme ji určit v podmínce if. V tomto případě je jako selected (výchozí) položkou označen první název tabulky (řetězec s indexem nula).

    Textové pole pro vložení SQL dotazu má běžné možnosti formátování. Pozor musíme dát na odřádkování. Vložený konec řádky by byl pak chybou pro zapsaný SQL dotaz. Chování textového pole lze upřesnit pomocí dalších nastavení parametrů.

    Po potvrzení tlačítkem typu submit následuje zpracování nastavených hodnot druhým skriptem testtable2.php. Společně s nastavenými hodnotami formuláře je přenášen jako skrytá proměnná též název nastavené databáze.

    <html>
    <!-- testtable1.php -->
    <head>
      <title>Test zápisu SQL</title>
    </head>
    <body bgcolor=#C6D8F4>
    <div align=center>
    <?
      $host="localhost"; $uziv=""; $heslo="";  $db="jmeno_db";
    ?>
      <form action="testtable2.php" method=post>
        <font color=navy size=+1>
          Nalezené tabulky nastavené databáze</font><br>
        <select name=table>
          <?
            mysql_connect($host,$uziv,$heslo);
            $table_jmeno=mysql_list_tables($db);
            for($i=0;$i<mysql_num_rows($table_jmeno);$i++){
              $nazev=mysql_tablename($table_jmeno,$i);
              if(!$i)
                echo "<option selected>".$nazev;
              else
                echo "<option>".$nazev;
            }
            mysql_close();
          ?>
        </select>
        <br><hr width=40%><br>
    
        <font color=navy size=+1>Zadejte dotaz SQL k provedení</font><br>
        <textarea name="dotaz" cols=50 rows=8>
          select * from vybrana_tabulka
        </textarea>
        <br><br>
        <input type=submit value="  Zpracuj  ">
        <input type=hidden name=db value=<? echo $db; ?>>
      </form>
    </div>
    </body>
    </html>
    

    Ve druhém skriptu následuje zpracování odeslaných dat. Vlastní dotaz na databázi předáváme pomocí funkce MySQL_DB_Query(). Parametry funkce jsou po řadě – použitá databáze, vlastní řetězec dotazu a spojení. Není-li stejně jako v našem případě poslední parametr zapsán, je použito posledního vytvořeného spojení. Pokud by žádné spojení neexistovalo, funkce by se spojení pokusila vytvořit. Návratovou hodnotou této funkce je identifikátor výsledku, který je zde zapsán do proměnné $vysledek. V případě, že by při provádění příkazu došlo k chybě, byla by navrácena hodnota false. Obdobně by také šlo využít služeb funkce MySQL_Query(), která nepožaduje parametr databáze a dotaz je prováděn nad právě aktivní databází.

    Výsledek výběrových dotazů select bude vypisován ve tvaru tabulky. Jednotlivé obsahy řádků výsledné tabulky jsou skládány za pomoci funkcí MySQL_Num_Fields(), která zjišťuje počet hodnot ve výsledku, MySQL_Num_Rows() zjišťující počet záznamů ve výsledku, MySQL_Field_Name() navracející název položky výsledku a MySQL_Fetch_Row(), která načítá výsledné záznamy do pole. Každá položka je pak uložena jako jeden prvek pole. Není-li již další záznam výsledku (nebo při chybě) navrátí funkce hodnotu false.

    Na konci výpisu je připojeno opět potvrzovací tlačítko (submit). V tomto případě neslouží pro zahájení zpracování dat, ale naopak pro přesměrování na výchozí skript testtable1.php a nastavení výchozích hodnot pro možnost zadání nového dotazu. Skripty si samozřejmě můžeme upravit dle vlastních potřeb.

    Ještě dvě důležité připomínky – dotazy zde v textovém poli neukončujeme pomocí středníku a za druhé v případě neúspěšného dotazu je nutné zkontrolovat práva přístupu k požadované tabulce (databázi).

    <html>
    <!-- testtable2.php -->
    <head>
      <title>Provedení SQL příkazu</title>
    </head>
    <body bgcolor=#C6D8F4>
      <div align=center>
      <?
        $host="localhost"; $uziv=""; $heslo="";
        if(!mysql_connect($host,$uziv,$heslo))
          echo "Nelze vytvořit spojení s databází!!!";
    
        $vysledek=mysql_db_query($db,$dotaz);
        echo "<font color=navy size=+2>Výsledek dotazu</font><br>";
        echo "<b>".$dotaz."</b><hr width=40%>";
    
        if(!$vysledek):
          echo "<b>Nastala chyba při zpracování dotazu!</b>";
        elseif(!mysql_num_rows($vysledek)):
          echo "<b>Zadaný dotaz proveden...</b>";
        else:
          echo "<table style=\"color:white;\".
                   "rules=none cellpadding=5 bgcolor=\"#0563A5\">";
          for($i=0;$i<mysql_num_fields($vysledek);$i++)
            echo "<th>".mysql_field_name($vysledek,$i)."</th>";
          echo "</tr>";
    
          for($i=0;$i<mysql_num_rows($vysledek);$i++){
            echo "<tr>";
            $pole_radku=mysql_fetch_row($vysledek);
            for($j=0;$j<mysql_num_fields($vysledek);$j++)
              echo "<td>".$pole_radku[$j]."</td>";
            echo "</tr>";
          }
          echo "</table>";
        endif;
        mysql_close();
      ?>
    
      <br><hr width=40%><br>
      <form action="testtable1.php" method=post>
        <input type=submit value="  Zadat další dotaz  ">
      </form>
      </div>
    </body>
    </html>
    

    Výsledek dotazu

    A to je vše. Hodně štěstí nejen v roce 2005.

    Související články:
    Vyvíjíme databázový a informační systém XXIV. (27.12.2004)
    Vyvíjíme databázový a informační systém XXIII. (16.12.2004)
    Vyvíjíme databázový a informační systém XXII. (07.12.2004)
    Vyvíjíme databázový a informační systém XXI. (16.11.2004)
    Vyvíjíme databázový a informační systém XX. (03.11.2004)
    Vyvíjíme databázový a informační systém XIX. (25.10.2004)
    Vyvíjíme databázový a informační systém XVIII. (13.10.2004)
    Vyvíjíme databázový a informační systém XVII. (04.10.2004)
    Vyvíjíme databázový a informační systém XVI. (21.09.2004)
    Vyvíjíme databázový a informační systém XV. (13.09.2004)
    Vyvíjíme databázový a informační systém XIV. (25.08.2004)
    Vyvíjíme databázový a informační systém XIII. (18.08.2004)
    Vyvíjíme databázový a informační systém XII. (02.08.2004)
    Vyvíjíme databázový a informační systém XI. (14.07.2004)
    Vyvíjíme databázový a informační systém X. (07.07.2004)
    Vyvíjíme databázový a informační systém IX. (01.07.2004)
    Vyvíjíme databázový a informační systém VIII. (23.06.2004)
    Vyvíjíme databázový a informační systém VII. (16.06.2004)
    Vyvíjíme databázový a informační systém VI. (09.06.2004)
    Vyvíjíme databázový a informační systém V. (02.06.2004)
    Vyvíjíme databázový a informační systém IV. (26.05.2004)
    Vyvíjíme databázový a informační systém III. (19.05.2004)
    Vyvíjíme databázový a informační systém II. (12.05.2004)
    Vyvíjíme databázový a informační systém I. (05.05.2004)

    ( Celý článek! | Autor: Martin Pokorný | Počet komentářů: 0 | Přidat komentář | Informační e-mailVytisknout článek )

    Vyhledávání
     

    Anketa
    Kolik ročně utratíte za dovolené?

    Nic 
     (1548 hl.)
    Do 1 000,- Kč 
     (1068 hl.)
    Do 10 000,- Kč 
     (999 hl.)
    Do 25 000,- Kč 
     (1378 hl.)
    Do 50 000,- Kč 
     (1016 hl.)
    Do 75 000,- Kč 
     (1178 hl.)
    Více než 75 000,- Kč 
     (1019 hl.)

    Celkem hlasovalo: 8206


    Poslední komentáře
    frontierd@126.com
    frontierd@126.com
    frontierd@126.com
    c
    http://www.coachoutl

    Newsletter
    Přihlaste si nezávazně - i bez registrace - odběr informačního newsletteru. Podrobné informace najdete zde.

    Emailová adresa:


    Kalendář
    <<  Leden  >>
    PoÚtStČtSoNe
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    

    Redakci připojuje


    Nejčtenější

    Databáze je prázdná!


    Nejvíce komentářů

    Databáze je prázdná!


    Reklama






    Nenechte si ujít články na dalších webech




    Na této stránce použité názvy programových produktů, firem apod. mohou být ochrannými známkami
    nebo registrovanými ochrannými známkami příslušných vlastníků.

    Databázový svět | dfKlub - digitální fotografie | Vtipník - vtipy přímo k Vám | Reminder - přestaňte zapomínat | Databázový svět

    Copyright (c) 2004 AVRE Publishing, spol. s r.o. Všechna práva vyhrazena