PHP prakticky/Výběr článku z databáze: Porovnání verzí
Smazaný obsah Přidaný obsah
m <source> → <syntaxhighlight> |
Změna logiky (zabránění E_NOTICE), přejmenovány proměnné, doplněno SQL pro výchozí naplnění DB tabulky. |
||
Řádek 8:
) ENGINE = MYISAM ;
</syntaxhighlight>
<syntaxhighlight lang="sql">
INSERT INTO `clanky` (`nazev`, `popis`, `clanek`) VALUES
('Článek č. 1', 'Popis prvního článku', 'Tady je hlavní text prvního článku.'),
('Článek č. 2', 'Popis druhého článku je o něco delší', 'Text druhého článku.');
</syntaxhighlight>
== Připojení k DB ==
Vytvoříme si soubor, je jedno jak ho pojmenujete, já zvolím connect.php, budeme ho používat k připojení do databáze.
<syntaxhighlight lang="php">
<?php
$db_server = "localhost"; // server do kterého se budeme připojovat
$db_jmeno = "user"; // jméno pro připojení
$db_heslo = "password"; // heslo pro připojení
$db_vyber = "test"; // název databáze
mysql_connect($db_server, $db_jmeno, $db_heslo)
or die("Nepodařilo se připojit do databáze.");
Řádek 22 ⟶ 30:
?>
</syntaxhighlight>
== Výběr a zpracování databáze ==▼
▲== Výběr a zpracování údajů z databáze ==
Na řádku 5 zjišťujeme pomocí funkce ''isset()'', zda je nastavena proměnná $id (zde je příklad uvedený tak, že proměnná bude nastavena vždy), pokud bude, tak budeme pokračovat s vykonáváním souboru. Na řádku 6 uložíme do proměnné $dotaz SQL dotaz v podobě ''SELECT id, nazev, popis, clanek FROM clanky WHERE id=" . $id . " LIMIT 1''. Tento dotaz nám z tabulky clanky vytáhne sloupce id, nazev, popis a clanek, vytáhne pouze jediný (LIMIT 1) a to ten, který je určený proměnnou $id.▼
Ve zkratce tento skript funguje tak, že příkazem ''include'' připojíme ke zpracování i dříve vytvořený soubor connect.php. URL pro zobrazení článku s identifikačním číslem 1 by měla podobu: ''http://nejaka.adresa.cz/vyber_clanku.php?id_clanku=1''. Globální pole ''$_GET'' obsahuje všechny informace předávané v adresním řádku prohlížeče. Na řádku 4 zjišťujeme pomocí funkce ''isset()'', zda bylo v URL zadáno ID článku (zde je příklad uvedený tak, že proměnná bude nastavena vždy), pokud bude, tak budeme pokračovat s vykonáváním skriptu.
Na dalším, sedmém, řádku zpracujeme pomocí funkce ''mysql_query()'' dotaz uložený v proměnné $dotaz a výsledek uloží do proměnné $sql, tuto potom na dalším řádku použijeme jako parametr funkce ''mysql_fetch_array()'', která nám zpracovaný dotaz uloží do jmenného pole s proměnnou $ok. Dále testujeme, jestli na desátém řádku se v poli $ok položka s klíčem ''nazev'' nachází nějaká hodnota, pokud ano, tak na dalších řádcích vypíšeme text, pokud ne, tak napíšeme chybovou hlášku.▼
▲
▲Na dalším,
<syntaxhighlight lang="php" line>
<?php
include "connect.php";
$adresa = $_GET['adresa'];▼
▲if(isset($id)){ //zpracuje, pokud je vybráno ID v URL adrese
$id = (int) $id; // přetypování
$dotaz = "SELECT id, nazev, popis, clanek FROM clanky WHERE id=" . $id . " LIMIT 1";
$
// id v URL a
$
if(!empty($
echo "Název: " . $
"Popis: " . $
"Článek: " . $
}
else {
echo "Takový článek neexistuje!"; // pokud je pole
}
else {
echo "
}
?>
</syntaxhighlight>
|