[Grafika] [WebTip] [Fotografování] [Galerie] [MujMac] [Printing]
  Redakce: info@builder.cz   Inzerce: reklama@grafika.cz
Diskuzní fóra
.Net (149)
ActiveX (22)
ASP (409)
Assembler (189)
C++ Builder (4645)
Databáze (1221)
Delphi (3302)
DelphiX (159)
DirectX (28)
Java (1566)
JavaScript (1218)
Php (8339)
PowerBuilder (1318)
Problémy a algoritmy (1071)
Programování v Linuxu (331)
Python (26)
Visual Basic (1182)
Visual C++ (950)
Wap (43)
Web (1795)
Win32 (731)
Textová inzerce
Grafika Publishing, vydavatel http://www.grafika.cz/, http://www.webtip.cz/, http://www.webtip.cz/ a dalších hledá nové posily pro svůj tvůrčí tým.
Chcete se stát tvůrcem prestižních webových projektů?

Bližší informace
Služby Builder.cz
  • Bazar - koupím(12) Nový
       - Upgrade na Delphi 5 nebo 6 Profesional
       - Koupim D4 nebo D5
  • Bazar - prodám(34) Nový
       - WIN NT 4 Server
       - Visual Basic Enterprise Ed. 5.0
  • Hledám práci(42) Nový
       - Programátor HTML, CSS, PHP, MySQL
       - Prace na projektech
  • Nabízíme práci(36)
       - Zodpovědného programátora pro dokončení programu
       - Programátor PHP + SQL
  • Projekty(12)
       - Budik - open source
       - Projekt Programators
  • Nejčtenější články!
    Sedm užitečných tipů k tvorbě WWW stránek
    Menu jako v Office XP
    Český redakční systém phpRS verze 1.3.0
    Vytvořte si vlastní internetový prohlížeč
    Zdokonalte si svůj web!
    Hromadné enablování a disablování komponent
    Redakční systém - generování IV
    Kniha citátů - 2.díl
    OpenGL v C++ Builderu (5.díl)
    Vector - datový kontejner v C++
    PE cryptor
    Nejnovější články!
    Kniha návštěv s pomocí MySQL - 2.díl
    Komponenta TIAeverButton
    Asociativní pole v C++
    Sada Komponent 1st Class 2000
    Formuláře v Javascriptu
    Hrajeme si na Explorer - 6. díl
    Zdokonalte si svůj web!
    Šablona vector v C++ a iterátory
    Segmentace paměti v ASM
    Dva tipy pro Delphi
    Kniha návštěv s pomocí MySQL - 1.díl
    Kniha návštěv

    Následující díl: Kniha návštěv s pomocí MySQL - 2.díl
    Autor: Jan Sova
    Rubrika: PHP
    Publikováno: 02.10. 2001
      Tisk článku

    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.


    Autor: Jan Sova

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

    Komentáře k článku
    Ivan 10.10.7:01 Pouzil by som premennu $PHP_SELF
    Jan Sova 16.10.21:21 RE: Pouzil by som premennu $PHP_SELF
    Petr 02.10.19:35 Prosba
    Jan Sova 03.10.19:24 Jistě, dokud budou čtenáři.
    Jiri Berousek 08.10.13:46 RE: Jistě, dokud budou čtenáři.
    AL3X 08.10.23:54 RE: RE: Jistě, dokud budou čtenáři.
    Jiri Berousek 09.10.7:32 RE: RE: RE: Jistě, dokud budou čtenáři.
    Olga Neumanová 02.10.11:07 Kniha navstev
    loizo 13.10.0:33 RE: Kniha navstev
         






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