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>
Prohlédněte si demo 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