Kniha návštěv s pomocí MySQL - 1.díl - 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

Kniha návštěv s pomocí MySQL - 1.díl

2. října 2001, 00.00 | Pokud již delší dobu hledáte návod, jak si vytvořit profesionální knihu návštěv, můžete to zkusit právě pomocí seriálu, který začíná tímto článkem.

Postupně si vytvoříme hotovou knihu návštěv, která bude ke stažení na konci seriálu. Vše se budu snažit dělat co nejjednodušší a postupně přecházet ke složitějšímu. Ještě připomenu, že vždy je několik možností, jak daný problém vyřešit, tak se prosím nijak neuražte, pokud použiji jiný způsob, než by jste použili vy.

Jak bude knihovna vypadat

Budou dvě stránky, na jedné bude uživatel přidávat záznamy (zde budou také záznamy vkládány do databáze) a na druhé si záznamy bude moc prohlížet. Přidávat záznamy bude uživatel pomocí (neočekávaně :-) formuláře. Knihu také vhodně upravíme pomocí CSS.

Klasický formulář, který si představíte (zadání: jména, e-mailu, komentáře, stránek, ...) obohatíme o elementy RADIO, kterými uživatel ohodnotí obsah webu. Vzhledem k tomu, že hodnocení budeme ukládat do databáze, můžeme později takto získaná data vhodně zneužít - zobrazit, vyhodnotit jako anketu atd...

Databáze

Řekli jsme si, co budeme od knihy očekávat. Proto musíme vytvořit vhodnou tabulku v databázi, kam budeme ukládat získaná data. Nemusím připomínat, že použijeme MySQL.

Pokud databázi nemáte vytvořenou, musíte příkazem CREATE DATABASE databázi vytvořit, v knize budeme počítat s databází kniha. Zdrojový kód databáze není nijak složitý, ale ani příliš těžký, proto jen vysvětlím jednotlivé části tabulky.

CREATE DATABASE kniha;
\u kniha
CREATE TABLE knihahostu(
 id not null auto_increment,
 autor varchar(40) not null,
 email varchar(40),
 web varchar(40),
 text text not null,
 datum varchar(11) not null,
 hodnoceni varchar(8) not null,
 primary key(id));
  • id - pořadí záznamu v databázi (automatické zvýšení)
  • autor - jméno přispívatele
  • email - e-mail autora zápisu
  • web - stránky autora
  • text - samotný text záznamu
  • datum - datum, kdy byl příspěvek zapsán
  • hodnoceni - slovní hodnocení
  • primary key(id) - to je snad jasné
  • Formulář

    Doufám, že každý čtenář ovládá HTML a nebude se zlobit, pokud hned ukáži zdrojový kód stránky. Jednotlivé proměnné jsou samozřejmě pojmenovány jako v databázi. Stránku s formulářem pojmenujeme zapisknihy.php.

    <form action=zapisknihy.php?zapis method=post>
    <table cellSpacing=0 cellPadding=2 width=400 bgColor=#f7f7e7 border=0>
    <tr>
      <td width=300>Vaše jméno:</td>
      <td><input size=26 name=autor></td>
    </tr>
    <tr>
      <td>E-mail:</td>
      <td><input size=26 name=email></td>
    </tr>
    <tr>
      <td>Stránky:</td>
      <td><input size=26 name=web></td>
    </tr>
    <TR>
      <TD>Hodnocení webu:</TD>
      <td><INPUT TYPE=RADIO NAME=hodnoceni VALUE=Výborný>Výborná
      <INPUT TYPE=RADIO NAME=hodnoceni VALUE=Pěkný>Pěkná
      <INPUT TYPE=RADIO NAME=hodnoceni VALUE=Dobrý>Dobrá
      <INPUT TYPE=RADIO NAME=hodnoceni VALUE=Dostatečný>Dostatečná
      <INPUT TYPE=RADIO NAME=hodnoceni VALUE=Hrozný>Hrozný</td>
    </tr>
    <tr>
      <td><textarea name=text rows=12 cols=49></textarea></td>
    </tr>
    <tr>
     <td>
     <input type=submit value=Odeslat>
     <input type=reset value=Smazat></td>
    </tr>
    </table>

    Výsledný formulář vypadá nic moc a proto jej upravte pomocí CSS (ke stažení naleznete i verzi s CSS). Komentáře snad není třeba, formulář dokáže vytvořit každý :-).

    Zápis do databáze

    Když už máme hotový formulář a stránku zapisknihy.php, přidáme do stránky (do té samé, tzv. jedna stránka bude obsahovat kódy z těchto dvou tabulek) ještě skript, který se postará o zápis do databáze. Skript je to velmi jednoduchý a myslím, že ho nemusím nějak zbytečně vysvětlovat, protože je dostatečně okomentován.

    Případnou výzvu k vložení správných údajů můžete udělat pomocí Javascriptu, ušetříte tak znovu načítání stránky.

    <?
    do{
     if ($QUERY_STRING=="zapis"):
    
     @$spojeni = mysql_connect($localhost); //pokus o spojení
     if (@!$spojeni):
         echo "Nepodařilo se připojit k MySQL.<BR>\n";
               break;
         endif;
    
     MySQL_Select_DB($kniha); // výběr databáze
    
     // vložil uživatel do DB vše co požadujme:
     if (!$autor):
         echo "Nezadal jste jméno, záznam nemůže být přidán !";
         break;
     endif;
    
     if(!$text):
         echo "Nezadal jste text, záznam nemůže být přidán.";
         break;
     endif;
    
     $datum=Date("d.m.Y"); //do proměnné jsem získal datum
    
     // samotný SQL příkaz:
     @$vysledek = MySQL_Query("INSERT INTO knihahostu VALUES  
          (null, '$autor','$email',
            '$web', '$text','$datum','$hodnoceni')"); 
    
     if (@!$vysledek): //kontrola, jak to dopadlo
           echo "Došlo k chybě při zpracování dotazu v databázi.<BR>\n";
           break;
        else:
           echo "Záznam byl přidán do databáze<br>\n";
        endif;
     endif;
    
    } while(false)
    ?>

    Příště ukáži, jak vypsat data z databáze a provedeme nějaké ty úpravy. Ke stažení bude také celý skript, který bude v obyčejné verzi a ve verzi s úpravami (složitější CSS a podobná vylepšení).

    Druhý článek ještě není hotový a proto prosím zasílejte rady, co by jste upravili. Pokud bude zájem, mohu přidělat ještě jeden díl, kde však nebude kniha návštěv s použitím databáze, ale pouze s použitím textového souboru. To je mnohdy lepší, protože v takovém textovém souboru se člověk mnohem lépe vyzná a ne vždy smíme použít databázi.

    Obsah seriálu (více o seriálu):

    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: