Kniha návštev v PHP

Napsal O webu (») 18. 9. 2006 v kategorii PHP/HTML, přečteno: 7004×

Vytvorte si vlastnú knihu návštev s použitím PHP a MySQL

Kniha návštev v PHP


Každý z nás sa už iste stretol s návštevnou knihou (guestbookom) a niektorí z vás určite rozmýšľali, že by bolo dobré mať podobnú na vlastnom webe. Samozrejme, môžu si dať na web už hotovú knihu napr. od Webtoolsu, ale ak chcete mať skutočne vlastnú knihu s vlastnými funkciami a bez reklamy, musíte si ju vytvoriť sami, alebo ju dať vytvoriť nejakému design štúdiu alebo známemu. V tomto článku si povieme práve o tom, ako si môžete takúto knihu vytvoriť sami.
Ako prvé začneme vytáraním tabulky SQL. Tabuľku nazveme guestbook a bude obsahovať tieto stĺpce:
id - bude sa vyplňovať automaticky a bude obsahovať ID daného príspevku v knihe
nick - nick návštevníka
predmet - predmet príspevku
text - text príspevku
cas - čas, kedy bol príspevok vložený v tvare UNIX TIMESTAMP
Bude to vyzerať asi takto:


CREATE TABLE `guestbook` (

`id` INT(11) NOT NULL AUTO_INCREMENT,

`nick` VARCHAR(50) NOT NULL default 'Anonym',

`predmet` VARCHAR(50) NOT NULL default '',

`text` TEXT NOT NULL,

`cas` INT(11) NOT NULL default '0',

PRIMARY KEY (`id`)

);


Ďalej si vytvoríme súbor index.php, kde bude umiestnený kód samotnej knihy. Tento súbor sa bude skladať z niekoľkých častí. V prvej časti sa pripojíme k MySQL, v druhej časti bude script pre vkladanie nových príspevkov, v tretej bude HTML kód pre vkladanie príspevku a vo štvrtej časti bude samotné zobrazovanie príspevkov. Tu je ten súbor:


<?

  // Prvá časť - pripojenie k databázi MySQL



  define("hostname", "localhost");

  define("username", "root");

  define("password", "");

  define("database", "guestbook");



  if (mysql_connect(hostname, username, password)) {

    mysql_select_db(database);

  }

  else {

    echo "Nepodarilo sa pripojiť k databáze MySQLO";

    die();

  }





  if (isset($_GET['ulozit']) && $_GET['ulozit'] == "yes") {

    // Druhá časť - skript pre vkladanie nového príspevku

    if (mysql_query("INSERT INTO `guestbook` VALUES('','".$_POST['nick']."','".$_POST['predmet']."','".$_POST['text']."','".time()."')")) {

      echo "Príspevok bol úspešne vložený";

    }

    else {

      echo "Príspevok sa nepodarilo vložiť!";

    }

  }

  else {

    // Tretia časť - HTML kód pre vloženie nového príspevku

?>



<html>

  <head>

    <title>Návštevná kniha</title>

  </head>

  <body>

    <form action="index.php?ulozit=yes" method="post">

      <table border="0" cellpadding="0" cellspacing="5" width="70%">

        <tr>

          <td>Nick:</td>

          <td><input type="text" name="nick" /></td>

        </tr>

        <tr>

          <td>Predmet:</td>

          <td><input type="text" name="predmet" /></td>

        </tr>

        <tr>

          <td>Text:</td>

          <td><textarea name="text"></textarea></td>

        </tr>

        <tr>

          <td></td>

          <td><input type="submit" value="Odoslať" /></td>

        </tr>

      </table>

    </form>

    <br /><br />

<?

  }

  // Štvrtá časť - zobrazenie príspevkov

  $res = mysql_query("SELECT * FROM `guestbook`");

  if (mysql_num_rows($res) >= 1) {

    while($row = mysql_fetch_array($res)) {

      echo "

        <b>Vložil:</b> ".$row['nick']."<br />

        <b>Vložené:</b> ".date("j.n Y G:i:s",$row['cas'])."<br />

        <b>Predmet:</b> ".$row['predmet']."<br />

        ".$row['text']."<br /><br /><br />

        ";

        }

?>

  </body>

</html>

<?

  }

  else {

    echo "Zatiaľ žiadne príspevky";

  }

?>


Tak, to by bolo hádam všetko čo je potrebné k 'zostrojeniu' guestbooku. Prípadne nejasnosti píšte do komentárov.
Autor: timbulko
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
jaroslav z IP 95.103.94.*** | 9.5.2010 11:25
hi!
mohli by ste mi sem dat ako by vyzeral kod, ked by boli prispevky zobrazene od najnovsieho ???
Podpora z IP 82.209.8.*** | 9.5.2010 12:25
$res = mysql_query("SELECT * FROM `guestbook` ORDER BY `nazev_sloupce_casu ` DEST");
jaroslav z IP 95.103.94.*** | 9.5.2010 13:54
Co ma byt ako "nazev_sloupce_casu" ??
Podpora z IP 82.209.8.*** | 9.5.2010 14:29
Ve Vašem případě to bude asi sloupec `cas `
jaroslav z IP 95.103.94.*** | 9.5.2010 14:33
To som si myslel ale vypisalo mi to
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/free/ic.cz/f/fightsite/root/www/s1/private/index.php on line 152
Podpora z IP 82.209.8.*** | 9.5.2010 15:10
Jirka z IP 212.20.112.*** | 24.12.2011 10:50
pozor, neni to DEST ale DESC!!! smile

$res = mysql_query("SELECT * FROM `guestbook` ORDER BY `nazev_sloupce_casu ` DESC");
filmo z IP 92.52.7.*** | 23.11.2011 00:40
Zdravim som zaciatocnik a potreboval by som pomoct s tymto viem ze uz primitivnejsie to asi nemoze byt popisane smile len som sa chcel spytat ci by mi niekto nespravil video navod ako to spravit mam hosting zatial len an ic.cz ak by bol niekto taky ochotny bol by som mu velmi vdacny smile
rthrt z IP 83.208.205.*** | 26.4.2010 22:15
sseew


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel devět a jedna