Nejdříve si v databázi vytvoříme tabulku Clanky, do které budeme ukládat všechny články.
Jednotlivé sloupce tabulky budou tyto:
- ID (zároveň primární klíč),
- název článku,
- autor,
- obsah článku
- a datum.
Tuto tabulku můžete buď vytvořit ručně přes nějaké rozhraní typu Adminer nebo PHPMyAdmin a nebo jej můžete spustit přes soubor, který vidíte níže. Název může být např. vytvor-clanky.php. Soubor obsahuje příkazy SQL a je napojen na db.php, který zabezpečuje připojení k databázi. Ten samozřejmě musíte vytvořit nejdříve (viz předcházející kapitola).
Soubor vytvor-clanky.php může vypadat např. takto:
<?php // Napojení souboru se spojením k databázi require 'db.php'; // SQL příkaz k vytvoření tabulky Clanky v databázi $vytvor_clanky = "CREATE TABLE Clanky ( id INT(6) AUTO_INCREMENT PRIMARY KEY, nazev VARCHAR(30) NOT NULL, autor VARCHAR(30) NOT NULL, obsah TEXT, datum VARCHAR(30) NOT NULL )"; if (mysqli_query($spojeni, $vytvor_clanky)) { echo "Tabulka Clanky byla vytvořena"; } else { echo "Chyba, tabulka nebyla vytvořena: " . mysqli_error($spojeni); } mysqli_close($spojeni); ?>
Samotný příkaz SQL vypadá takto:
CREATE TABLE Clanky ( id INT(6) AUTO_INCREMENT PRIMARY KEY, nazev VARCHAR(30) NOT NULL, autor VARCHAR(30) NOT NULL, obsah TEXT, datum VARCHAR(30) NOT NULL )
Dále si vytvoříme soubor, kterým budeme články vytvářet – novy-clanek.php:
<?php require 'db.php' ; ?> <form action="" method="post"> Název článku:<br> <input type="text" name="nazev"><br> Autor:<br> <input type="text" name="autor"><br> Obsah článku:<br> <textarea name="obsah"></textarea><br> <input type="submit" value="Uložit článek"> </form> <?php if (!empty ($_POST)) // empty - prázdný a jeho negace nebo-li // pokud bylo cokoliv zadáno do formuláře, začne se vykonávat následující podmínka { // přijme všechny zadané informace do formuláře $nazev = $_REQUEST["nazev"]; $autor = $_REQUEST["autor"]; $obsah = $_REQUEST["obsah"]; $datum = StrFTime("%d.%m.%Y", Time()); // uložíme data do databáze $novy_clanek = mysqli_query($spojeni, "INSERT INTO Clanky (nazev, autor, obsah, datum) VALUES ('$nazev', '$autor', '$obsah','$datum')"); // Po uložení vypíše hlášku echo ("Článek byl uložen<br>"); } echo ('<a href="vypis.php">Výpis článků</a>'); mysqli_close($spojeni); ?>
V závěru předchozího kódu „voláme“ soubor vypis.php, kterým si necháme vypsat všechny články v databázi:
<?php require 'db.php'; $vysledek = mysqli_query($spojeni, "SELECT * FROM Clanky ORDER BY datum DESC"); // Načtení článků seřazených podle datumu while($data = mysqli_fetch_assoc($vysledek)) { echo "<i>Název: </i><b>"; echo $data['nazev']; echo "</b><br><i>Autor: </i>"; echo $data['autor']; echo "<br><i>Vytvořeno: </i>"; echo $data['datum']; echo "<br><i>Obsah článku:</i><br>"; echo $data['obsah']; echo "<hr>"; } ?>
Na konec ještě vytvoříme základní rozhraní, např. takto:
<h1>Jednoduchý systém na ukládání článků do databáze</h1> <p><a href="novy-clanek.php">Vytvořit nový článek</a></p> <p><a href="vypis.php">Výpis článků</a></p>
Takovýto systém ovšem neumožňuje editovat uložené články.
Úkoly ke kapitole:
- vytvořte ve formuláři pro odesílání článků ochranu před roboty
- doplňte stránky o CSS např. formou frameworku