Dynamický web
Název školy | Vyšší odborná škola obalové techniky a Střední škola, Štětí, příspěvková organizace | ||
Adresa školky | Kostelní 134, 411 08 Štětí | ||
IČ | 46773509 | ||
Název operačního programu | OP Vzdělávání pro konkurenceschopnost | ||
Registrační číslo | CZ.1.07/1.5.00/34.1006 | ||
Označení vzdělávacího materiálu | |||
Název tématické oblasti (sady) | Programování | ||
Název materiálu | PHP - cvičení III | ||
Anotace | |||
Autor | Jazyk | ||
Očekávaný výstup | |||
Klíčová slova | |||
Druh výukového zdroje | Věková skupina žáků | ||
Typ interakce | Ročník | ||
Speciální vzdělávací potřeby | žádné | ||
Zhotoveno, (datum/období) | Celková velikost |
Obsah
Prerekvizity
Výchozí soubor
Výchozí soubor projektu bude index.php.
Úloha 1: Tabulka
Použijte nástroj: webhosting/adminer.php.
Vytvořte tabulku pro ukládání textů k písničkám, cizím slovem lyrics. Tabulku budou tvořit sloupce: id, název sklady, album, délka, autor, text v původním jazyce a text v českém jazyce.
řešeníCREATE TABLE `lyrics` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `nazev` VARCHAR(128) NOT NULL, `album` VARCHAR(128) NOT NULL, `delka` TIME NOT NULL, `autor` VARCHAR(128) NOT NULL, `text_orig` text NOT NULL, `text_cs` text NOT NULL );
Přidejte si do tabulky alespoň dva záznamy.
řešeníINSERT INTO `lyrics` (`nazev`, `album`, `delka`, `autor`, `text_orig`, `text_cs`) VALUES ('Yesterday', 'Love', '0:1:58', 'Beatles', 'Yesterday, all my troubles seemed so far away.\r\nNow it looks as thought they\'re here to stay.\r\nOh I believe in yesterday.\r\n\r\nSuddenly, I\'m not half the man I used to be.\r\nThere\'s a shadow hanging over me.\r\nOh yesterday came suddenly.\r\n\r\nWhy she had to go ?\r\nI don\'t know, she wouldn\'t say.\r\nI said something wrong.\r\nNow I long for yesterday.\r\n\r\nYesterday, love was such an easy game to play.\r\nNow I need a place to hide away.\r\nOh I believe in yesterday.\r\n\r\nWhy she had to go ?\r\nI don\'t know, she wouldn\'t say.\r\nI said something wrong.\r\nNow I long for yesterday.\r\n\r\nYesterday, love was such an easy game to play.\r\nNow I need a place to hide away.\r\nOh I believe in yesterday.\r\n\r\nMmm...', 'Včera všechny mé problémy se zdály tak vzdálené.\r\nTeď to vypadá, že se rozhodly tady zůstat.\r\nÓ já věřím ve včerejšek.\r\n\r\nNajednou, jsem jen z poloviny ten muž, kterým jsem býval.\r\nVisí nade mnou stín.\r\nÓ včerejšek přišel najednou.\r\n\r\nProč musela jít ?\r\nNevím, neřekla.\r\nŘekl jsem něco špatně.\r\nTeď toužím po včerejšku.\r\n\r\nVčera, láska byla jen jednoduchou hrou.\r\nTeď se potřebuji někam schovat.\r\nÓ já věřím ve včerejšek.\r\n\r\nProč musela jít ?\r\nNevím, neřekla.\r\nNěco jsem řekl špatně.\r\nTeď toužím po včerejšku.\r\n\r\nVčera, láska byla jen jednoduchou hrou.\r\nTeď se potřebuji někam schovat.\r\nÓ já věřím ve včerejšek.\r\n\r\nMmmmmmm.....'), ('Dreams', 'Everybody Else\'s Doing It, So Why Can\'t We? ', '0:4:25', 'The Cranberries', 'All my life,\r\nis changing every day,\r\nin every possible way.\r\n\r\nAnd oh, my dreams,\r\nit\'s never quite as it seems,\r\nNever quite as it seems.\r\n\r\nI know I\'ve felt like this before, but now I\'m feeling it even more,\r\nBecause it came from you.\r\nAnd then I open up and see the person falling here is me,\r\nA different way to be.\r\n\r\nAh, la da ah...\r\nLa...\r\n\r\nI want more impossible to ignore,\r\nImpossible to ignore.\r\nAnd they\'ll come true, impossible not to do,\r\nImpossible not to do.\r\n\r\nAnd now I tell you openly, you have my heart so don\'t hurt me.\r\nYou\'re what I couldn\'t find.\r\nA totally amazing mind, so understanding and so kind;\r\nYou\'re everything to me.\r\n\r\nAll my life,\r\nIs changing every day,\r\nIn every possible way.\r\n\r\nAnd oh, my dreams,\r\nIt\'s never quite as it seems,\r\n\'Cause you\'re a dream to me,\r\nDream to me.\r\n\r\nAh, da, da da da, da, la...', 'Celej můj život,\r\nse každým dnem mění,\r\nv každém aspektu.\r\n\r\nA moje sny,\r\nty nikdy nejsou přesně takové, jak se zdá,\r\nNikdy přesně takové, jak se zdá.\r\n\r\nVím, že už jsem se takhle cítila dřív,\r\nale teď to cítím mnohem silněji,\r\nprotože to přišlo od tebe.\r\nA tak odhazuji zábrany a vidím, že já jsem ta,\r\nco do toho spadla,\r\nJe to tak jiné.\r\n\r\nAh, la da ah...\r\nLa...\r\n\r\nChci víc, nejde to přehlížet,\r\nNejde to přehlížet.\r\nA ony se uskuteční, nelze jinak,\r\nNemůže to být jinak.\r\n\r\nA teď ti narovinu říkám,\r\nže máš moje srdce, tak mi neubliž.\r\nJsi to, co jsem nemohla najít.\r\nNaprosto úžasný, tak chápavý a tak laskavý;\r\nJsi pro mě vším.\r\n\r\nCelej můj život,\r\nse každým dnem mění,\r\nv každém aspektu.\r\n\r\nA moje sny,\r\nty nikdy nejsou přesně takové, jak se zdá,\r\nprotože ty jsi můj vysněný,\r\nMůj vysněný.\r\n\r\nAh, da, da da da, da, la...');
Spojení s DB
Úloha 2: Menu
Načtěte z tabulky všechny záznamy (postačí sloupce id a název) a vypište pouze názvy písniček do výčtu (<ul>→<li>
).
Odkazy v menu
Z vytvořeného výčtu vytvořte odkazy, které povedou na stránku song.php
s parametrem GET id
,
kde hodnota id bude hodnota sloupce id z tabulky.
Soubor song.php
vytvořte, zatím bude prázdný.
Pokud vše funguje jak má, tak se vám při kliknutí na odkaz v menu zobrazí prázdná stránka, kde v adresním řádku prohlížeče bude něco jako:
http://localhost/song.php?id=2řešení
Úloha 3: Písnička
V souboru song.php
bychom nyní měli mít k dispozici parametr id
z pole GET
.
Ověřte si např.
var_dump($_GET);
Ošetření parametru
Napište podmínku, kterou zjistíte, zdali parametr $_GET["id"]
existuje.
Pokud ano, pak do nové proměnné $id
uložte hodnotu z tohoto parametru.
V opačném případě vypište chybovou hlášku: Neplatný parametr a do proměnné $id
uložte hodnotu 0
.
<?php if (isset($_GET["id"])) { $id = $_GET["id"]; } else { echo "<p>Neplatný parametr</p>"; $id = 0; }
Načtení písničky
Napište dotaz, kterým získáte záznam z tabulky pro dané $id
.
Následně získejte data z databáze metodou fetch_object()
.
<?php $res = $my->query("SELECT * FROM lyrics WHERE id=$id"); if ($res) { // díky podmínce WHERE očekáváme jeden nebo žádný záznam $data = $res->fetch_object(); }
Výpis písničky
Nyní můžete vypsat všechny informace o písničce.
řešení
<?php $res = $my->query("SELECT * FROM lyrics WHERE id=$id"); if ($res) { // díky podmínce WHERE očekáváme jeden nebo žádný záznam $data = $res->fetch_object(); if ($data) { echo "<h1>$data->nazev</h1>"; // atd. } }