Práce s databází pro začátečníky - kniha citátů - 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

Práce s databází pro začátečníky - kniha citátů

26. září 2001, 00.00 | Pokud se snažíte osvojit práci s MySQL, nebo si chcete naprogramovat jednoduchý skript s podporou databáze, můžete si pro inspiraci přečíst tento článek.

Myslím, že pro pokročilé uživatele a naprosté začátečníky je všude dost skriptů, chybí však skripty pro mírně pokročilé programátory. Tento skript není pro úplné začátečníky a měl by vás seznámí hlavně s MySQL.

V průběhu článku si vytvoříme plně fungující "systém", který si budete moc vložit na své stránky. Součástí skriptu bude správcovské prostředí, které bude sloužit k zadávání citátů.

Myslím, že uvedený skript lze použít jako základní "kámen" pro některé další pokročilejší skripty či "systémy", proto ho také tak berte.

Po tomto článku bude následovat seriál o knize návštěv, proto pokud nerozumíte MySQL, doporučuji článek skutečně prostudovat, není to nic těžkého.

Databáze knihy

Nejdříve vytvoříme databázi. Protože toto má být článek, který vás má naučit programovat s pomocí MySQL, nebudeme to s databází přehánět a vytvoříme si poměrně jednoduchou tabulkou:

CREATE DATABASE datacitaty;
\u datacitaty
CREATE TABLE citaty(
poradi int not null auto_increment,
autor varchar(40) not null,
citat text not null,
primary key(poradi));

Databázi trochu vysvětlím, ale není nijak složitá. poradi určuje pořadí citátu v databázi. Je to primární klíč, protože každý citát bude mít své číslo, které se bude automaticky zvyšovat o 1 (to má za úkol auto_increment). Do autor se bude ukládat autor citátu. Samotný text citátu se bude ukládat do citat.

Vložení citátu do databáze pomocí formuláře

Nejdříve naprogramujeme stránku, která se bude starat o vložení skriptu do databáze. Tuto stránku nemusím asi nijak moc vysvětlovat, jednoduchý formulář.

Stránku můžeme pojmenovat třeba form.php.

<HTML>
<HEAD>
<TITLE>Zadani citatu</TITLE>
</HEAD>
<BODY>
<H1>Zadání citátu</H1>

<FORM ACTION=vloz.PHP METHOD=POST>
<TABLE>
<TR><TD>Autor citátu: <TD><INPUT NAME=autor SIZE=50>
</TABLE>
<TEXTAREA NAME=citat ROWS=8 COLS=80>Zadejte text referátu</TEXTAREA>
<P><INPUT TYPE=SUBMIT VALUE=PRIDEJ></P>
</FORM>

<P>Smíte používat HTML tagy, nedoporučuji však užívat
například složité tabulky a podobně.</P>
</BODY>
</HTML>

Uložení citátu do databáze

No a nyní začneme skutečně programovat pomocí PHP. Vytvoříme stránku vloz.php, na kterou ukazuje naše první stránka (po vyplnění a odeslání formuláře).

Skript pracuje asi takto: nejdříve udělá všechny potřebné kroky, aby se připojil k databázi a aby ověřil, zda mu byly předány všechny potřebné údaje pro zapsání citátu do databáze (připomínám, že potřebné údaje skript obdrží od naší první stránky).

Dále zjistí počet již uložených citátů v databázi a toto číslo zvětší o 1 (o to se stará samotná databáze a aby to udělala, musíme místo id uložit hodnotu null). Pokud vše dobře proběhlo, pokusí se vloží citát do databáze. Bude-li citát vložen či nevložen, zobrazí o tom zprávu.

Pokud během skriptu nastane chyba, skript vyskočí z hlavní smyčky a zobrazí zprávu o chybě. Na konci vkládám do stránky soubor menu.php. To je jednoduchý skript, který hned popíši.

<HTML>
<HEAD>
<TITLE>Vlozeni citatu do databaze</TITLE>
</HEAD>

<BODY>
<?
do {
     @$spojeni = MySQL_Connect("localhost");
     if (!$spojeni):
          echo "Nepodařilo se připojit k MySQL.<BR>\n";
          break;
     endif;
     MySQL_Select_DB("datacitaty");

     $hlaska = "<br><h3>Citát nebyl zařazen do databáze !</h3><BR>\n" ;
     //textová proměnná
     if(!$citat):
         echo"Nezadal jste text citátu\n".$hlaska;
         break;
     endif;

     if(!$autor):
         echo"Nezadal jste autora citátu\n".$hlaska;
         break;
     endif;

     @$vysledek = MySQL_Query("INSERT INTO citaty VALUES 
     (null, '$autor','$citat')");
     // provede příkaz

     if (!$vysledek):
         echo "Došlo k chybě při zpracování dotazu v databázi.<BR>\n";
         break; //pokud chyba
     else: //pokud dobře
         echo "Citát byl do databáze vložen<br>\n";
     endif;


} while (false);
include "menu.php"; // načtení menu
?>
</BODY>
</HTML>

Skript menu.php

Toto je jen velmi jednoduchý skript, spíše "skript", který vloží do stránky jednoduché menu. Celý skript tvoří jediný příkaz - echo.

<?
echo "
<hr size=1>
<p align=center>
<a href=index.php>[Index]</a>
<a href=vypis.php>[Vypis citátů]</a>
<a href=form.php>[Vlož citát]</a>
</p>"
?>

Výpis citátů

No a na řadě je poslední stránka - skript, který vypíše citáty.

Je to jednoduchý skript, nijak zvlášť neupravovaný, případné úpravy nechám na vás.

Skript se nejdříve připojí k databázi a pokud se mu to podaří (pokud se nepodaří, vyskočí z hlavní smyčky), provede SQL příkaz, kterým uloží citáty do proměnné.

Podaří-li se provést SQL příkaz, skript postupně vypíše všechny citáty. Výpis citátu bude vypadat nějak takto:

pořadí. text citátu
(autor)

<HTML>

<HEAD>
 <TITLE>Stranka s citaty</TITLE>
</HEAD>

<BODY>
<H1>Výpis citátů.</H1>

<
do {   
      @$spojeni = MySQL_Connect("localhost"); //pokus o spojení
      if (!$spojeni):                        //kontrola
            echo "Nepodařilo se připojit k MySQL.<BR>\n";
            break;
      endif;

      MySQL_Select_DB("datacitaty");  //výběr



      @$vysledek = MySQL_Query("SELECT * FROM citaty ORDER BY poradi"); 
      //SQL příkaz
      if (!$vysledek):
             echo "Došlo k chybě při zpracování dotazu v databázi.<BR>\n";
             break;
      endif;


      while ($zaznam = MySQL_Fetch_Array($vysledek)){
             echo "<p>".$zaznam["poradi"].". ".$zaznam["citat"]."<BR>";
             echo "<I>(".$zaznam["autor"].")</i></p>";
             }

} while (false);

>
</BODY>
</HTML>

Vylepšení skriptů

Toto není nijak převratný "systém", ale začínajícím programátorům se může hodit. Chybí tady věci jako seřazení podle autorů, přímá úprava citátu (systém umí citát pouze přepsat), vypsání pouze několika citátů spolu s odkazy na další citáty (například vypsání pouze 30 citátů). V databázi lze například udělat další tabulku pro vtipy, které by pak bylo možné pomocí podobného skriptu vypsat, atd...

Pokud se vám "systém" líbí a chtěli by jste nějaké úpravy, případně další vylepšení, stačí napsat (prosím jako komentář článku) a já připravím další díl, kde z tohoto jednoduchého "systému" vytvoříme již systém a například pro vtipy. O příštím dílu rozhodnete sami.

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: