DYNAMICKÉ WEBOVÉ STRÁNKY

Rozměr: px
Začít zobrazení ze stránky:

Download "DYNAMICKÉ WEBOVÉ STRÁNKY"

Transkript

1 DYNAMICKÉ WEBOVÉ STRÁNKY Programování - část 2 Ing. Pavel Chmiel, Ph.D Jazyk PHP PHP je skriptovací jazyk vykonávaný na straně webového serveru. PHP skripty se vkládají přímo do kódu webové stránky (uzavřen ve speciálním párovém tagu). Na straně webového serveru se nejprve vykonají (interpretují) všechny PHP příkazy a funkce, poté se prohlížeči pošle upravená webová stránka obsahující pouze HTML/CSS kód. 1

2 Jazyk PHP Server hostující dynamické webové stránky musí obsahovat: Aplikaci webového serveru (např. Apache) PHP engine - interpretr PHP skriptů Databázový systém (např. MySQL) Při vývoji (tvorbě) webových stránek je vhodné mít tyto aplikace nainstalovány na lokálním počítači (localhost). Výhoda: - rychlost při testování, - není nutné připojení k internetu, - možnost upravit si konfiguraci přesně dle vlastních požadavků. WAMP server WAMP server je balík nakonfigurovaných aplikací pro vývoj dynamických webových stránek, obsahující: webový server APACHE interpretr jazyka PHP databázový systém MySQL webový nástroj pro správu databáze phpmyadmin WAMP server je zdarma ke stažení: 2

3 Základní vlastnosti jazyka PHP zpracování údajů z formulářů modifikace obsahu, formátování a struktury webové stránky obsahuje funkce pro práci s databázemi (např. MySQL) obsahuje velké množství dalších odladěných funkcí, např.: - práce s textovými řetězci - práce s datem a časem - práce s elektronickou poštou a pro FTP přístup na server - matematické funkce - práce s obrázky - práce se soubory a složkami, atd. - možnost vytvářet vlastní funkce a procedury skripty prováděny na serveru výsledná stránka neobsahuje PHP kód Pravidla použití jazyka PHP soubory webové stránky obsahující PHP skripty musí mít příponu *.php (např. index.php) PHP skripty se vkládají mezi speciální značky: <?php echo "ahoj světe!";?> PHP příkazy, funkce, deklarace proměnných a konstant jsou vždy ukončeny středníkem v názvu proměnné, konstanty a vlastní funkce nepoužívat diakritiku 3

4 Zjištění konfigurace PHP, spuštění skriptu Funkce pro zjištění konfigurace PHP enginu: <?php phpinfo();?> 1. kód (PHP skript) vložit do souboru webové stránky, 2. uložit s příponou php (např. test.php) do pracovního adresáře webového serveru, 3. pro spuštění na lokálním webovém serveru s PHP zapsat v prohlížeči adresu: localhost/test.php 4. pro spuštění na vzdáleném webovém serveru s PHP zapsat v prohlížeči adresu: 4

5 Příkaz ECHO Příkaz ECHO slouží k: 1. výpisu statických textových řetězců 2. dynamickému vkládání HTML/CSS kódu 3. výpisu obsahu PHP proměnných 4. výpisu obsahu PHP konstant 5. kombinace bodů 1. až 4. Příkaz ECHO 1. Výpis statických textových řetězců <?php echo "Ahoj světe!";?> Celá konstrukce se zapíše přímo do těla webové stránky, tedy mezi párové značky <body> </body> UPOZORNĚNÍ: Spustit na lokálním webovém serveru (localhost, popř. přímo adresa )!!! 5

6 Příkaz ECHO 2. Dynamické vkládání HTML/CSS kódu <?php echo "<span style='color:#f00'>ahoj</span> světe!";?> 1. použít apostrofy ' 2. použít sekvenci \" UPOZORNĚNÍ: HTML / CSS kód uvnitř příkazu ECHO bude interpretován, nikoliv zobrazen jako statický text!!! Psaní speciálních znaků Některé znaky mají v PHP speciální význam. Pro výpis znaku v prohlížeči je nutné použít zpětné lomítko před tímto znakem. Speciální znak Význam v PHP Zápis znaku " Uvozuje statický text příkazu ECHO \" ' Nahrazuje uvozovky uvnitř ECHO \' $ Označení proměnné v PHP \$ \ Převede spec. symbol na literární znak \\ Takto zapsaná sekvence (zpětné lomítko + znak) je uvnitř příkazu ECHO chápána jako znak (", ', $, \) 6

7 Psaní speciálních znaků <?php echo "Vyučující řekl: \"Děti, pište si!\""; echo "<br>"; echo "Cena je <span style=\"color:#f00\">1.000\$</span>";?> Komentáře v PHP Slouží k popisu jednotlivých části PHP kódu pro větší přehlednost, snadnou úpravu a pochopení kódu i za delší dobu provozu webu. PHP engine při interpretaci PHP skriptů komentáře ignoruje. <?php /* Víceřádkový komentář. Při vývoji a testování webu slouží také k odstavení nepoužívané části PHP kódu. */ echo "Ahoj světe!"; //Jednořádkový komentář?> 7

8 Proměnné v PHP Proměnné slouží k uchování hodnot, které lze během provádění skriptu měnit. Proměnné začínají znakem $ (dolar), např. $soucet Pro název proměnné platí tato pravidla: - nepoužívat diakritiku, - PHP rozlišuje velká a malá písmena ($prom $PROM), - název nesmí obsahovat jiné symboly než písmena, číslice, podtržítko, - název vždy začíná písmenem nebo podtržítkem. Proměnnou lze deklarovat na kterémkoliv místě v PHP skriptu Není potřeba uvádět datový typ hodnot, které bude obsahovat. Přiřazení hodnoty do proměnné Operátorem pro přiřazení hodnoty do proměnné je = (znak rovná se ) Proměnné, umožňující přiřazení jedné hodnoty: $promenna_cislo = 2; $promenna_cislo = 1.76; $promenna_cislo = 1e-3; (ekvivalent k číslu 0.001) $promenna_text = "Nějaký textový řetězec"; $promenna_text = "2"; $promenna_log = true; (logické hodnoty: true - pravda, false - nepravda) 8

9 Vypsání hodnoty proměnné $vek = 35; // deklarace proměnné echo $vek; // vypíše: 35 echo "Je mi $vek let."; // vypíše: Je mi 35 let. echo "Je mi <strong>$vek</strong> let."; // vypíše: Je mi 35 let. echo "Proměnná \$vek = $vek "; // vypíše: Proměnná $vek = 35 Výpis hodnoty proměnné Pro výpis obsahu proměnných společně s textem je někdy výhodné použít spojení pomocí symbolu tečky nebočárky. Nezbytné především u proměnných typu SESSION, COOKIE, POST, GET, SERVER, REQUEST, ENV a tzv. asociativních polí. $vek = 35; echo "Je Vám <span style='color:red'>".$vek."</span> let."; echo "Vaše IP adresa je: ",$_SERVER["REMOTE_ADDR"]; Výsledný text v prohlížeči: Je Vám 35 let. Vaše IP adresa je:

10 Proměnná typu pole Umožňuje uchovávat více hodnot (prvků pole), které spolu souvisí. Každá hodnota je dostupná pomocí indexu, zapsaného v hranaté závorce. Pokud není uvedeno jinak, pole se indexuje od nuly. Příklad jednoduché proměnné typu pole: $jmena[0] = "Pankrác"; $jmena[1] = "Servác"; $jmena[2] = "Bonifác"; echo $jmena[1]; //vypíše Servác Proměnná typu pole Jednotlivé hodnoty uložené v poli mohou být libovolného typu: Ukázkový příklad: $pole[0] = 3.14; $pole[1] = 77; $pole[2] = "Toto je nějaký text "; // reálné číslo // celé číslo // textový řetězec 10

11 Proměnná typu pole Inicializaci pole lze provést také zjednodušeně pomocí funkce array() Ukázkový příklad: $RajskySalat = array('rajče', 'cibule', 'sůl', 'cukr', 'pepř'); echo $RajskySalat[2]; // Vypíše: sůl Proměnná typu pole Pokud u pole použijeme prázdný index, číslování indexů je nastaveno automaticky od nuly. Ukázkový příklad: $pole[ ] = 11; $pole[ ] = 22; $pole[ ] = 33; echo $pole[0]; //vypíše 11 echo $pole[1]; //vypíše 22 echo $pole[2]; //vypíše 33 11

12 Proměnná typu pole Jako index lze použít textový řetězec (tzv. asociativní pole). Ukázkový příklad: $kosik["kod_zbozi"] = 76889; $kosik["nazev"] = "Nikon D700"; $kosik["cena"] = 54990; echo $kosik["nazev"]; //vypíše Nikon D700 Proměnná typu pole Počet prvků v poli lze zjistit pomocí funkce count() Ukázkový příklad: $RajskySalat = array('rajče', 'cibule', 'sůl', 'cukr', 'pepř'); $pocet = count($rajskysalat); // proměnná $pocet má hodnotu 5 12

13 Proměnná typu pole Pole může být i vícerozměrné přidáním dalších indexů. Ukázkový příklad dvourozměrného pole $kaledar: $kalendar["leden"][1] = "Nový rok"; $kalendar["leden"][2] = "Vyspávám opičku "; $kalendar["leden"][3] = "3. leden - Hurá do školy!"; echo $kalendar["leden"][2]; //vypíše Vyspávám opičku Konstanty v PHP Konstanta slouží k pojmenování hodnoty, na kterou se budeme při provádění skriptu odkazovat. Hodnotu konstanty nelze za běhu měnit. define ("jmeno_konstanty", "hodnota"); define ("pi", "3.14"); define ("max", "100"); define ("maxn", "100", true); Třetí parametr je volitelný true znamená že nezáleží na velikosti písmen v názvu konstanty (maxn, maxn, MAXN, atd. jsou shodné). 13

14 Konstanty v PHP Použití konstanty ve skriptu: define ("max", "100"); echo "Maximální hodnota je ".max; Výsledný text v prohlížeči: Maximální hodnota je 100 Využití konstant: Číselné hodnoty označíme výstižnějším názvem, který lépe vystihuje jejich význam (např. konstanta pi = 3.14, abs_nula = ), Změna konstantní hodnoty v rozsáhlých stránkách na jednom místě. Metody odesílání dat z formuláře Metody GET a POST určují způsob odeslání dat z formuláře obslužnému skriptu. Uživatelem vložené, popřípadě předdefinované (atribut VALUE) hodnoty jednotlivých formulářových prvků jsou v obslužném skriptu přístupné prostřednictvím globální proměnné typu pole: $_GET["nazev_prvku"] $_POST["nazev_prvku"] Jméno formulářového prvku (atribut NAME) 14

15 Metoda GET Výchozí metoda všech formulářů. Všechna data formuláře jsou zaslána obslužnému skriptu prostřednictvím URL adresy. Metodu lze využít při navigaci v rámci webové stránky a při předávání parametrů stránky (např. ID článku, vyhledávaný řetězec, apod.) Metoda GET je vhodná pouze pro zasílání textových řetězců, nelze použít pro odesílání souborů nebo velkého objemu hodnot!!! Hodnoty se přenášejí ve tvaru nazev_promenne = hodnota Příklad: Metoda GET Znaky v URL Význam? oddělení URL od přenášených hodnot proměnná = hodnota & přenášené hodnoty oddělení jednotlivých proměnných + Zástupný znak mezery symboly, znaky s diakritikou Převedeny na: %HEX kód znaku Pozn.: HEX = Hexadecimální (šestnáctková) číselná soustava. Příklad: znak č bude v URL přenášen ve tvaru %E8 (E8 16 = ) 15

16 Metoda GET Konstrukce formuláře: formular.htm <form action="vypis.php" method="get"> Jméno: <input name="jmeno" type="text"><br> Příjmení: <input name="prijmeni" type="text"><br> <input type="submit" value="odeslat"> </form> Metoda GET localhost/vypis.php?jmeno=pavel&prijmeni=chmiel PHP automaticky dekóduje data z URL adresy a uloží každou dvojici promenna=hodnota jako proměnnou s odpovídajícím názvem do pole $_GET ["jmeno_formularoveho_prvku"] Obslužný skript: vypis.php <?php echo "Vaše jméno: ".$_GET["jmeno"]."<br>"; echo "Vaše příjmení: ".$_GET["prijmeni"];?> 16

17 formular.htm vypis.php Metoda POST Metoda je určena pro odesílání většího objemu dat (velké množství textových hodnot, datové soubory různého typu, apod.) v přímo v těle HTTP požadavku webovému serveru. Přenášená data nejsou součástí URL adresy, vhodné pro přenos citlivých údajů (např. login, heslo, bezpečnostní kód, apod.). Metoda POST vždy odesílá nový HTTP požadavek webovému serveru. Nehledá se tedy stránka uložená v mezipaměti (cache) prohlížeče na lokálním disku, ale vždy se načte nová stránka z webového serveru. 17

18 Metoda POST Konstrukce formuláře: formular.htm <form action="vypis.php" method="post"> Jméno: <input name="jmeno" type="text"><br> Příjmení: <input name="prijmeni" type="text"><br> <input type="submit" value="odeslat"> </form> Metoda GET localhost/vypis.php PHP dekóduje data z HTTP požadavku webovému serveru a uloží je jako proměnnou s odpovídajícím názvem do pole: $_POST ["jmeno_formularoveho_prvku"] Obslužný skript: vypis.php <?php echo "Vaše jméno: ".$_POST["jmeno"]."<br>"; echo "Vaše příjmení: ".$_POST["prijmeni"];?> 18

19 formular.htm vypis.php Metoda POST přenos souborů Odesílají-li se z formuláře metodou POST kromě textu také soubory (např. obrázky), je potřeba v definici formuláře nastavit atribut ENCTYPE: enctype = "multipart/form-data" <form action="skript.php" method="post" enctype="multipart/form-data"> <input type="file" name="soubor"> další formulářové prvky. </form> 19

20 SESSION proměnné Patří mezi tzv. superglobální proměnné hodnoty uložené v těchto proměnných jsou přístupné na všech webových stránkách (ve všech souborech obsahujících PHP skripty) určité webové prezentace. Před použitím SESSION proměnné na určité webové stránce je nutné zavolat funkci (pouze jednou na stránce): session_start(); (nespoléhat se na nastavení v souboru php.ini: session.auto_start =1) Webový prohlížeč uživatele, který si stránku načte, získá jedinečný ID kód (session ID). Zároveň se vytvoří textový soubor (tzv. session, neboli relace) na straně webového serveru s tímto ID, ve kterém jsou ukládány veškeré session proměnné a jejich hodnoty tohoto uživatele. SESSION proměnné Příklad názvu souboru: sess_l20dpvbrg7pfu01lr47qf1nue3 Příklad obsahu souboru: id i:1;cas i: ;stranek i:8 Session (relace) je platná: Dokud ji nezrušíme pomocí PHP funkce session_destroy(); Dokud neukončíme webový prohlížeč 20

21 Vytvoření SESSION proměnné <?php session_start(); $_SESSION["nazev_promenne"] = hodnota;?> Hodnota proměnné bude přístupná na všech webových stránkách (resp. PHP skriptech) webové prezentace. Umožňuje tedy jednoduché sdílení hodnot mezi jednotlivými částmi webové prezentace. Použití SESSION proměnné <?php soubor1.php session_start(); $_SESSION["cislo"] = 35;?> <?php soubor2.php session_start(); echo "Číselná hodnota: ".$_SESSION["cislo"]."<br>";?> 21

22 PHP funkce pro SESSION proměnné session_start() - vytvoří session (ID) session_id() - zjistí aktuální session ID session_is_registered("nazev_promenne") - vrátí hodnotu TRUE, pokud je session proměnná již zaregistrovaná a FALSE v případě, že ještě není zaregistrována unset($_session["nazev_promenne"]) - Zrušení hodnoty proměnné nazev_promenne v session session_destroy() - odstraní aktuální session (např. při odhlašování uživatele) Proměnné webového serveru a PHP Jedná se o proměnné vytvářené webovým serverem a PHP enginem: $_SERVER["nazev_promenne"] Proměnné a jejich obsah (hodnoty) lze ve skriptech běžně používat. Přehled proměnných a jejich hodnot získáme pomocí funkce phpinfo(); (v části PHP Variables ) Ukázka systémových proměnných a jejich obsahu: 22

23 Základní matematické operátory Operátor Operace Příklad + sčítání = 9 - odečítání 7 2 = 5 * násobení 7 * 2 = 14 / dělení 7 / 2 = 3.5 % zbytek po celočíselném dělení 7 % 2 = 1 Matematické operace lze provádět s čísly, konstantami a proměnnými, jejichž obsahem je číslo, popřípadě textový řetězec, který lze na číslo převést. Lze používat také PHP funkce, jejichž výstupem je číselná hodnota. Pro změnu pořadí matematických operací lze využít kulaté závorky ( ). Základní matematické operátory <?php $a = 1; $b = 3; $c = 5; $d = "7"; $e = "ahoj"; echo $a + $b; // vypíše: 4 echo ($d + $a) * $c; // vypíše: 40, proměnná $d se přetypuje na číslo 7 echo $e + $a; // vypíše: 1, proměnnou $e nelze přetypovat na číslo! echo $d / 5; // vypíše: 1.4 echo $d % 5; // vypíše: 2 echo $a - ($d * ($b - 2)); // vypíše: -6 echo round($c + sqrt($b)); // vypíše: 7?> PHP funkce: odmocnina čísla zaokrouhlení čísla 23

24 Příkazy pro větvení programu Umožňují stanovit bloky kódu, které budou provedeny při splnění či nesplnění stanovených podmínek. Základní konstrukce podmínkového příkazu: IF (jestliže) ELSE (jinak) Provede se příkaz nebo blok kódu, je-li splněna podmínka. $a = 1; if ($a==0) echo "proměnná \$a je rovna hodnotě 0"; // Tento příkaz se neprovede else echo "proměnná \$a není rovna hodnotě 0"; // Tento příkaz se provede Konstrukce podmínky příkazu IF Podmínka se uvádí v kulaté závorce za příkazem IF. Za příkazem IF ani ELSE se nepíše středník! if (podmínka) Vyhodnocení podmínky musí vracet logickou hodnotu: TRUE pravda, neboli podmínka je splněna FALSE nepravda, neboli podmínka není splněna Jedná se především o porovnávání (komparaci) dvou hodnot. Je-li podmínka splněna (TRUE), vykoná se blok příkazů části IF, není-li podmínka splněna (FALSE), vykoná se blok příkazů části ELSE. 24

25 Konstrukce podmínky příkazu IF Podmínkové výrazy Význam (A == B) A je rovno B (A < B) (A > B) (A je menší než B) (A je větší než B) (A <= B) A je menší nebo rovno B (A >= B) A je větší nebo rovno B (A <> B) (A!= B) A je různé od B A, B mohou představovat proměnné, konstanty, statické hodnoty (číselné, textové, logické), popř. funkce, vracející tyto hodnoty. Příkazy pro větvení programu Jestliže má být po vyhodnocení podmínky vykonáno více příkazů, uzavíráme je do složených závorek. Platí pro část IF i část ELSE. Část ELSE není povinná, pro korektní běh skriptu by měla být vždy definována. if ($a==0) echo "1. řádek<br>"; echo "2. řádek<br> "; echo "3. řádek"; else echo "proměnná \$a není rovna hodnotě 0"; 25

26 Příkazy pro větvení programu Další možností, jak ohraničit blok kódu, je použít místo složených závorek konstrukci dvojtečka příkaz endif; if ($a==0): echo "1. řádek<br>"; echo "2. řádek<br> "; echo "3. řádek"; endif; Logické operátory Rozhodovacích podmínek lze stanovit i více, spojují se pomocí logických operátorů, které určují pravdivost či nepravdivost celého výroku: Operátor Význam Pravda když and && or logický součin logický součet všechny podmínky jsou pravdivé alespoň jedna podmínka je pravdivá! negace pokud je podmínka nepravdivá XOR neekvivalence pouze jedna podmínka je pravdivá 26

27 Konstrukce podmínky příkazu IF if ((podmínka 1) and (podmínka 2) and (podmínka N)) Tyto příkazy se provedou, pokud jsou splněny (TRUE) všechny stanovené podmínky. else Provede se, pokud minimálně jedna z podmínek není splněna. Konstrukce podmínky příkazu IF $a = 3; if (($a > 0) and ($a <= 10)) Tyto příkazy se provedou, pokud proměnná $a bude nabývat hodnot: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. else Blok příkazů se provede ve všech ostatních případech. 27

28 Konstrukce podmínky příkazu IF if ((podmínka 1) or (podmínka 2) or (podmínka N)) Tyto příkazy se provedou, pokud je splněna (TRUE) minimálně jedna ze stanovených podmínek. else Provede se, pokud není splněna žádná ze stanovených podmínek. Konstrukce podmínky příkazu IF if (($_GET["vek"] >= 18) or ($_SESSION["prihlasen"] == "ano")) Tyto příkazy se provedou, pokud proměnná vek je větší nebo rovna 18, nebo proměnná prihlasen nabývá hodnoty ano, popřípadě jsou splněny obě podmínky najednou. else Blok příkazů se provede ve všech ostatních případech. 28

29 Příkaz IF ELSEIF ELSE if ($stat == "cz") echo "Česká republika"; elseif ($stat == "svk") echo "Slovenská republika"; elseif ($stat == "pl") echo "Polsko"; else echo "Nelze identifikovat stát!"; Umožňuje testovat podmínku na více hodnot. Za jedním příkazem IF může být i více příkazů ELSEIF. Konečná větev ELSE pak obsahuje kód, který by měl být proveden v případě, že nebyla splněna ani jedna z předchozích podmínek za IF nebo ELSEIF. Příkaz SWITCH CASE switch ($stat) case "cz": echo "Česká republika"; break; case "svk": echo "Slovenská republika"; break; case "pl": echo "Polsko"; break; default: echo "Nelze identifikovat stát!"; Umožňuje testovat podmínku na více hodnot, stejně jako konstrukce IF ELSEIF ELSE. 1. Zjisti se hodnota proměnné $stat 2. Prochází se jednotlivé větve (case) a jakmile se narazí na vyhovující podmínku, provede se blok kódu až k příkazu break; 3. Větev default se provede, pokud nevyhoví žádná podmínka (obdoba ELSE). 29

30 Kombinace PHP a HTML kódu Pro rychlejší zpracování webové stránky na straně serveru je vhodné, pokud je to možné, nevkládat HTML kód pomocí příkazu ECHO: <?php if ($stat == "cz"):?> <h1>česká republika</h1> <p>...</p> <?php elseif ($stat == "svk"):?> <h1>slovenská republika</h1> <p>...</p> <?php endif;?> Kombinace PHP a HTML kódu <?php if ($_SESSION["prihlasen"] == "ano")?> <h1>zabezpečená stránka uživatele</h1> <p>...</p> <?php else?> <div id="neprihlasen">přihlášení se bohužel nezdařilo </div> <?php?> 30

31 Příkazy pro tvorbu cyklů Cykly jsou určeny k opakovanému provádění bloku kódu v zadaném počtu nebo do splnění podmínky. V PHP jsou dva základní druhy cyklů: Cyklus WHILE Testuje podmínku před nebo po každé iteraci (kroku) a znovu se provede pouze v případě, že je splněna stanovená podmínka. Cyklus FOR Počet iterací (počet opakování bloku kódu) je přesně stanoven před prvním provedením (v definici příkazu FOR). Příklady použití cyklů procházení hodnot proměnné typu pole, inicializace proměnné typu pole, zpracování výsledku dotazu do databáze, vytváření položek rozbalovacího menu (formulářový prvek), výpis řady po sobě jdoucích číselných či textových hodnot, opakované provedení určitého bloku kódu, apod. 31

32 Cyklus WHILE Jedná o cyklus s podmínkou na začátku. while = dokud je splněna podmínka, prováděj blok příkazů cyklu. while (podmínka) příkazy; while (podmínka): příkazy; endwhile; Cyklus WHILE $i = 1; // řídící proměnná cyklu while ($i < 10) echo "Právě se provádí $i krok cyklu."; ++$i; // zvýšení hodnoty proměnné $i o 1 ($i = $i + 1) Bez změny hodnoty proměnné $i by cyklus nikdy neskončil, neboť proměnná $i by stále nabývala hodnoty 1 (podmínka splněna)!!! ++$i představuje zvýšení (inkrementaci) hodnoty proměnné $i o 1. --$i představuje snížení (dekrementaci) hodnoty proměnné $i o 1. 32

33 Cyklus DO WHILE Jedná o cyklus s podmínkou na konci. do příkazy; while (podmínka); Pravdivost výrazu se testuje na konci každé iterace namísto jejího začátku. první iterace cyklu do...while se provede vždy (pravdivost výrazu je testována až na konci iterace), což u cyklu while není zaručeno. Cyklus DO WHILE $i = 11; // řídící proměnná cyklu do echo "Právě se provádí $i krok cyklu."; ++$i; // zvýšení hodnoty proměnné $i o 1 ($i = $i + 1) while ($i < 10); Jelikož se podmínka cyklu vyhodnocuje na konci, blok příkazů se jednou provede i když hodnota 12 (11+1) je větší než 10! 33

34 Cyklus FOR Jedná o cyklus s přesně daným počtem kroků (opakování bloku příkazů). for (výraz1; výraz2; výraz3) příkazy; for (výraz1; výraz2; výraz3): příkazy; endfor; výraz1 Proveden pouze jednou na začátku cyklu. Inicializace řídící proměnné cyklu na počáteční hodnotu. výraz2 Vyhodnocen na začátku každého opakování cyklu. Testování stanovené podmínky. výraz3 Vyhodnocen na konci každého opakování cyklu. Změna hodnoty řídící proměnné. Cyklus FOR for ($i = 1; $i < 10; ++$i) // Provede se přesně 9 opakování (kroky 1, 2, 3, 4, 5, 6, 7, 8, 9) echo "Právě se provádí $i krok cyklu.<br>"; for ($i = 1; $i < 10; $i = $i + 2) // Provede se přesně 5 opakování (kroky 1, 3, 5, 7, 9) echo "Právě se provádí $i krok cyklu.<br>"; 34

35 Cyklus FOR $RajskySalat = array("rajče", "cibule", "sůl", "cukr", "pepř"); for ($i = 0; $i < count($rajskysalat); ++$i) echo $RajskySalat [$i]."<br>"; Cyklus FOR <form action="skript.php" method="post"> <select name="poradi"> <?php for ($i = 1; $i <= 5; ++$i) echo "<option value=\"",$i,"\">",$i,". místo</option>";?> </select> </form> 35

36 Cyklus FOREACH Používá se pro procházení všech prvků proměnné typu pole. Zjednodušuje příkaz FOR. Název příkazu je odvozen z anglických slov: FOR pro EACH každý AS jako foreach ($nazev_pole as $hodnota) echo "$hodnota <br>"; Vypíše hodnoty všech prvků pole $nazev_pole. Cyklus FOREACH $RajskySalat = array("rajče", "cibule", "sůl", "cukr", "pepř"); foreach ($RajskySalat as $ingredience) echo "$ingredience <br>"; 36

37 Cyklus FOREACH $RajskySalat = array("rajče", "cibule", "sůl", "cukr", "pepř"); foreach ($RajskySalat as $i => $ingredience) echo "$i. položka salátu: $ingredience <br>"; Příkaz BREAK Příkaz umožňuje předčasné ukončení provádění cyklu (FOR i WHILE). for ($i = 1; $i < 10; ++$i) if ($i == 3) break; echo "Právě se provádí $i krok cyklu.<br>"; Je-li řídící proměnná $i rovna 3, provádění cyklu se přeruší. Provedou se tedy kroky 1, 2 a poté celý cyklus skončí. 37

38 Příkaz CONTINUE Příkaz umožňuje přeskočit příslušnou iteraci (krok) cyklu (FOR i WHILE) a pokračovat dále až do konce. for ($i = 1; $i < 10; ++$i) if ($i == 3) continue; echo "Právě se provádí $i krok cyklu.<br>"; Je-li řídící proměnná $i rovna 3, přeskočí se daný krok cyklu. Povedou se tedy kroky 1, 2, 4, 5, 6, 7, 8, 9 Vnořování cyklů $iterace = 0; for ($i = 0; $i < 20; ++$i) for ($j = 0; $j < 5; ++$j) echo "Právě se provádí $iterace.<br>"; Provede se 20x vnitřní cyklus s řídící proměnnou $j. Textový řetězec bude pod sebou vypsán 100x. Vhodné např. pro práci s dvourozměrným polem. 38

39 Příkazy pro vkládání obsahu souborů PHP obsahuje příkazy require a include, které načítají a provádí kód ze zadaného externího souboru. Příkazy jsou totožné, liší se pouze v případě, kdy vkládaný soubor není nalezen: require - skončí s chybou (Fatal Error) a zastaví se zpracování stránky. include vypíše varování (Warning) a skript se pokusí běžet dál. Oba příkazy očekávají, že vkládané soubory jsou v kódu HTML, nikoliv PHP. Je-li vkládaný soubor skript PHP, musí být ohraničen PHP tagy. Syntaxe příkazů require a include Syntaxe obou příkazů je shodná. Název souboru a cesta k němu se zapíše do uvozovek nebo apostrofů. Ukázka příkazu include: 1. Soubor je ve stejném adresáři jako stránka obsahující příkaz: include "soubor.php"; 2. Soubor je v podadresáři: include "adresar/soubor.php"; 3. Soubor je v nadřazeném adresáři: include "../soubor.php"; 39

40 Příklad použití require a include <?php deklarace.php $ovoce = "jablko"; $barva = "zelené";?> <?php hlavni_stranka.php echo "Vidím ", $barva, " ", $ovoce; // proměnné neexistují (chyba) include "deklarace.php"; echo "Vidím ", $barva, " ", $ovoce; // vypíše: Vidím zelené jablko?> Příklady použití require a include Příkazy umožňují vytvářet přehlednější kód webových stránek, který je jednodušší na správu. Změna v externím souboru se projeví ve všech stránkách (souborech), kde byl obsah souboru vložen. Použitelné zejména pro: vytváření / uzavírání spojení s databází, vkládání uživatelských funkcí, proměnných nebo konstant, vkládání uživatelských menu, hlaviček stránky apod., vkládání formulářů nebo jeho částí, vkládání textů, apod. 40

41 Funkce v PHP Funkce je pojmenovaný blok kódu, který lze na jednom místě nadefinovat a pak jej používat prostým zapsáním jména funkce kdekoliv ve skriptech dané webové stránky. PHP funkce se deklarují klíčovým slovem function, pak následuje jméno funkce (nerozlišuje se velká a malá písmena) a kulaté závorky. V kulatých závorkách lze předávat funkci vstupní hodnoty (argumenty), funkce může vracet výstupní hodnotu. Rozdělení PHP funkcí: - vlastní, uživatelem definované funkce - předdefinované funkce v PHP (již vytvořené programátory PHP) Uživatelské funkce v PHP function jmeno_funkce (argument1, argument2,...) sekvence příkazů; return návratová hodnota; Argumenty funkce lze vynechat, pokud nepotřebujeme v těle funkce zpracovávat hodnoty předané z vnějšku (kulaté závorky zůstanou prázdné). Pokud má funkce vracet hodnotu, musí obsahovat klíčové slovo return. Proměnná nebo výraz uvedené za return se vrátí jako výsledná hodnota. 41

42 Uživatelské funkce v PHP <?php // Deklarace funkce function TretiMocnina($cislo) $vysledek = $cislo * $cislo * $cislo; return $vysledek; // Volání funkce TretiMocnina() echo TretiMocnina(5); // Vypíše: 125?> Argumenty funkcí Argumenty funkcí mohou být především: literáty (čísla, textové znaky, kombinace obojího) konstanty proměnné výsledky provádění jiné funkce kombinace výše zmíněných možností function jmeno_funkce (1) function jmeno_funkce (max) function jmeno_funkce ($x, $y) function jmeno_funkce (jina_funkce($a), "součet") 42

43 Argumenty funkcí předávané hodnotou function dvakrat ($cislo) return $cislo = $cislo * 2; $a = 6; echo $a; // vypíše 6 echo dvakrat($a); // vypíše 12 echo $a; // vypíše 6 Proměnná uvnitř funkce ($cislo) je kopií hodnoty, která je jí předána ($a). Změna parametru ($cislo), nezmění předanou hodnotu proměnné ($a). Argumenty funkcí předávané odkazem function dvakrat (&$cislo) // argument musí být proměnná!!! return $cislo = $cislo * 2; $a = 6; echo $a; // vypíše 6 echo dvakrat($a); // vypíše 12 echo $a; // vypíše 12 Proměnná uvnitř funkce ($cislo) zastupuje přímo proměnnou, která je jí předána ($a). Změna parametru ($cislo), změní předanou hodnotu proměnné ($a). 43

44 Rozsah platnosti proměnné Proměnné deklarované uvnitř funkcí jsou lokální, nejsou tedy platné (viditelné) mimo funkci!!! Pro přístup ke globální proměnné uvnitř funkce se musí použít příkaz global. Nevytváříme pak novou proměnnou, ale používáme proměnnou, která je dostupná i jinde ve skriptu (mimo funkci). function zmena_a() $a = 10; $a = 20; zmena_a(); echo $a; // vypíše 20 function zmena_a() global $a; $a = 10; $a = 20; zmena_a(); echo $a; // vypíše 10 Předdefinované funkce v PHP PHP obsahuje velké množství odladěných funkcí, které vytvořili programátoři jazyka PHP. Jedná se především o funkce, umožňující: - práci s datem a časem, - práci s textovými řetězci a regulárními výrazy, - práci s elektronickou poštou a pro FTP přístup na server, - matematické funkce, - práci s obrázky, - práci se soubory a složkami, - komunikaci s databázovými systémy (např. MySQL), - odesílání u, atd. Předdefinované PHP funkce jsou podrobně popsány v manuálu k PHP: 44

45 PHP funkce pro práci s časem a datem date("parametry_funkce_date"); Příklady použití funkce: echo date("h:i:s"); // vypíše aktuální čas ve tvaru, např. 12:55:16 echo date("h:i:s - \o\b\ě\d"); // vypíše 12:55:16 - oběd echo date("d.m.y"); // vypíše aktuální datum ve tvaru echo date("j.n.y"); // vypíše aktuální datum ve tvaru echo date("l"); // (malé L ) vypíše angl. den v týdnu, např. Monday echo date("@b"); // vypíše internetový čas, Veškeré parametry a možné kombinace jsou uvedeny v PHP manuálu. PHP funkce pro práci s časem a datem mktime(hodina, minuta, sekunda, měsíc, den, rok); Funkce mktime vrací počet sekund mezi a specifikovaným datem a časem. Čas specifikujeme v závorce v pořadí (lze vložit i proměnné a funkce): - hodina, minuta, sekunda, měsíc, den, rok. Pokud se některý parametr vynechá, dosadí se za to hodnota aktuálního času. echo mktime(0,0,0,12,24,2011); // vypíše echo date("l", mktime(0,0,0,12,24,2011)); // vypíše Saturday Vhodné pro realizaci časově závislých událostí (např. pro automatické uzavření či otevření hlasování, diskuze, rezervace, atd. k určitému datu a času). 45

46 PHP funkce pro práci s textovým řetězcem Délka textového řetězce: strlen("textový řetězec"); mb_strlen("textový řetězec"); // Pro práci s řetězci v kódování UTF-8 $jmeno = "Pavel"; echo strlen($jmeno); // Vypíše: 5 Při použití kódování webové stránky UTF-8 (každý znak je reprezentován 16 bitovým číslem) je potřeba na začátek skriptu umístit funkci: mb_internal_encoding("utf-8"); PHP funkce pro práci s textovým řetězcem Výběr části textového řetězce: substr("textový řetězec",počáteční znak, počet znaků); mb_substr("textový řetězec", počáteční znak, počet znaků); echo substr("pomeranč", 2); // Vypíše: meranč echo substr("pomeranč", 2, 5); echo substr("pomeranč", 0, 3); // Vypíše: meran // Vypíše: pom 46

47 PHP funkce pro práci s textovým řetězcem Rozdělení textového řetězce na části: explode("dělící znak", "textový řetězec"); $text = "To máme dnes ale krásný den"; $slovo = explode(" ", $text); echo $slovo[4]; // Vypíše: krásný PHP funkce pro práci s textovým řetězcem Sloučení částí textového řetězce do jednoho celku: implode("znak vkládaný mezi prvky", "skládané prvky řetězce"); $slovo = array("to", "máme", "dnes", "ale", "krásný", "den"); $text = implode(" ", $slovo); echo $text; // Vypíše: To máme dnes ale krásný den 47

48 PHP funkce pro práci s textovým řetězcem htmlspecialchars("text obsahující HTML značky"); Tato funkce převede některé znaky, které mají v HTML speciální význam (<, >, &, ", atd.) na obyčejné znaky, takže se pouze zobrazí, ale nestanou se součástí kódu HTML. Vhodné zejména při zpracování textu od uživatelů z formulářových prvků před jejich zobrazením či uložením do databáze $zprava = "<strong style='color:blue'>textíček</strong>"; echo htmlspecialchars($zprava); // Vypíše neformátovaný text: <strong style='color:red'>textíček</strong> PHP funkce pro práci s textovým řetězcem strip_tags("text obsahující HTML značky"); Tato funkce odstraní z textového řetězce veškeré HTML značky. $zprava = "<strong style='color:blue'>textíček</strong>"; echo strip_tags ($zprava); // Vypíše neformátovaný text textíček 48

49 PHP funkce pro práci s textovým řetězcem md5("textový řetězec"); Tato funkce zakóduje (zašifruje) textový řetězec podle určitého algoritmu. Šifrování je jednosměrné, neexistuje PHP funkce pro zpětné získání původního textového řetězce. Vhodné pro zakódování hesel před uložením do databáze Pro určitý řetězec funkce vytváří stále stejný kód. Vhodné pro porovnání hesla načteného z databáze a zadaného uživatelem $heslo = "admin"; echo md5($heslo); // Vypíše: 21232f297a57a5a743894a0e4a801fc3 PHP funkce pro odesílání mailu ze skriptu mail("adresa", "Předmět", "Obsah mailu", "hlavičky"); Využívá poštovního serveru, nainstalovaného na straně webového serveru. Funkce vrací logickou hodnotu TRUE, byla-li zpráva úspěšně odeslána. Pro korektní odeslání textové zprávy je doporučeno používat všechny hlavičky ve správném (standardním tvaru). 49

50 PHP funkce pro odesílání mailu ze skriptu <?php //definice hlavicek $hlavicky = "MIME-Version: 1.0\n"; $hlavicky.= "From: mujmail@seznam.cz\n"; // odesilatele $hlavicky.= "Return-Path: mujmail@seznam.cz\n"; $hlavicky.= "X-Mailer: PHP\n"; // mailový klient $hlavicky.= "Content-type: text/html; charset=iso \n"; $hlavicky.= "X-Priority: 3\n"; // priorita 1 (nejvyšší), 3, 5 (nejnižší) //odeslání mailu ze skriptu mail($_post[" "], "Pozdrav", "Ahoj příteli!<br>pavel.", $hlavicky);?> Předdefinované funkce v PHP Popis dalších předdefinovaných PHP funkcí naleznete především v: manuálu k PHP ( odborných výukových seriálech k PHP, např.: odborné literatuře k PHP, např.: Kolektiv autorů: PHP6, MySQL, Apache Vytváříme webové aplikace Jakub Vrána: 1001 tipů a triků pro PHP 50

51 Databázový systém Databázový systém je programový prostředek, který umožňuje: uložení dat (nejčastěji textová a číselná) uspořádaných do tabulek, definici datového typu uložených dat, definici struktury databáze (struktura databázových tabulek), realizaci vztahů (relací) mezi tabulkami (relační databáze), komunikaci mezi databází a externí aplikací (např. PHP skriptem) pomocí databázového jazyka (SQL - Structured Query Language), který umožňuje vytvářet a měnit strukturu databáze, dále vkládat, měnit, mazat a vyhledávat data v databázových tabulkách, atd. Databázový server Databázový server je počítač připojený k počítačové síti (lokální, Internet), mající přidělenou adresu (IP, doménové jméno) s nainstalovanou aplikací databázového systému. Umožňuje aplikacím (skriptům) řízený, zabezpečený přístup k datům uloženým v databázi. 51

52 Požadavky na databázový systém Měl by být (pokud možno) šířen pod GNU/GPL licencí, Měl by být schopen pracovat pod různými operačními systémy, Měl by být relační, spolehlivý, stabilní a dobře zdokumentovaný, Měl by podporovat standard jazyka SQL, Měl by obsahovat správu uživatelů a jejich přístupových práv, Měl by podporovat zabezpečení dat a zabezpečené přenosy dat, Měl by být podporován skriptovacími jazyky (PHP, ASP, PERL, atd.), Měl by umět ukládat data v různých znakových sadách, Měl by být rychlý, podporovat transakční zpracování dat a zálohy dat, Měl by být podporován free i komerčními webhostingy. 52

53 Požadavky na databázový systém Transakční zpracování složitější manipulace s daty se převede na posloupnost operací a platí, že se buď všechny operace provedou úspěšně a nebo se neprovedou vůbec (podobně jako u bankomatu). Víceuživatelský přístup řízení přístupu k datům ze strany více uživatelů či klientských aplikací. Databázový systém definuje přístupová práva jednotlivých uživatelů či aplikací k datům a rozsah jejich oprávnění. Požadavky na databázový systém Zotavení se z chyb a nehod při nepředvídané události, kdy dojde ke ztrátě údajů, musí dojít ke zotavení systému a pokračování v práci např. ze záložní databáze. Relační databáze data jsou uložena v databázových tabulkách s pevnou strukturou, mezi jednotlivými tabulkami jsou definovány relační vztahy (vazby). 53

54 Vlastnosti relační databáze Všechny údaje jsou uloženy v tabulkách. Mezi tabulkami existují relace (vztahy). Fyzická struktura údajů a způsob jejich uložení jsou nezávislé na uživatelích. Pro práci s údaji v databázi existuje standardizovaný databázový jazyk. Model databázové tabulky 54

55 Model databázové tabulky Sloupce - určují typ dat, který do něj (do jednotlivých řádků) můžeme vložit. Sloupce bývají také občas nazývány atributy. Řádky - jsou to jednotlivé záznamy v tabulce, které bývají identifikovány pomocí primárního klíče. Primární klíč je to sloupec, který nemá v žádném řádku duplicitní (stejnou) hodnotu, tedy veškeré hodnoty sloupce jsou unikátní (např. osobní číslo pracovníka, rodné číslo, kód zboží, atd.). Umožňuje jednoznačnou identifikaci určitého záznamu (nezbytné pro vytváření vazeb mezi tabulkami a jejich záznamy). Relace Mezi jednotlivými tabulkami existují tzv. relace (vazby), které vytvářejí vztahy mezi sloupci. Můžeme tak jednoduše propojit tabulky mezi sebou. čtenáři výpůjčka knihy 55

56 Databázový systém MySQL součást programového balíku WAMP server, k dispozici pro mnoho platforem (např. Windows, Linux, atd.), relační typ databáze, podporuje transakce, zabezpečený přístup, pro nekomerční využití zdarma, 100% podpora v PHP, použit u většiny neplacených i placených hostingů webových stránek, dobře zdokumentovaný, odladěný, stabilní a rychlý. Programový prostředek phpmyadmin součást programového balíku WAMP server, umožňuje jednoduchou a přehlednou komplexní správu databází databázového systému MySQL (struktura i data) prostřednictvím webového prohlížeče, není potřeba znát SQL příkazy, lze vytvořit zabezpečený přístup jednotlivých administrátorů databází, strukturu databáze včetně dat lze exportovat do textového souboru (přenos a záloha databáze), nastavení se nachází v konfiguračním souboru config.inc.php. 56

57 Spojení s databázovým serverem PHP obsahuje předdefinované funkce pro komunikaci s databázovým systémem MySQL. $spojeni = mysql_connect("adresa_db_serveru", "login", "heslo"); Ukázka použití PHP funkce: $spojeni = mysql_connect("localhost", "root", ""); $spojeni = mysql_connect(" ", "root", "mojeheslo"); $spojeni = mysql_connect("mysql.wz.cz", "r058", "tom7723"); Přihlašovací údaje obdržíte po registraci webhostingu od provozovatele. Spojení s databázovým serverem Spojení s databází: mysql_select_db("nazev_databaze"); Ukončení spojení s databázovým serverem: mysql_close($spojeni); je vhodné spojení a zrušení spojení s databázovým serverem realizovat v externím skriptu a ten pak pomocí příkazu include vložit do příslušných souborů webové prezentace. Výhoda: při změně parametrů spojení, změna pouze na jednom místě. 57

58 Spojení s databázovým serverem <?php function connect_db() $spojeni = mysql_connect("localhost", "root", ""); mysql_select_db("nazev_databaze"); mysql_query("set CHARACTER SET cp1250"); // volba cp1250 popř. utf8 return $spojeni; function close_db($spojeni) mysql_close($spojeni);?> databaze.php Spojení s databázovým serverem V úvodu příslušného souboru webové stránky nejprve vložíme tento externí skript (pokud jsou oba soubory ve stejném adresáři, napíšeme pouze jeho název): include "databaze.php"; Poté navážeme spojení na příslušném místě webové stránky: $db = connect_db(); Po ukončení práce s databází toto spojení opět zrušíme: close_db($db); 58

59 Komunikace s databází z PHP skriptu $id_vysledek = mysql_query("příkaz jazyka SQL"); Proměnná $id_vysledek obsahuje identifikátor výsledku dotazu do databáze. Dotazů může být v rámci jednoho spojení s databází více, každý má svůj jedinečný identifikátor, podle něhož se zpracují výsledky. Příklad použití PHP funkce: $dotaz1 = "SELECT * FROM uzivatel WHERE plat > '10000' "; $dotaz2 = "SELECT * FROM knihy WHERE titul = '".$_POST["nazev"]."' "; $id_vysledek = mysql_query($dotaz1); Komunikace s databází z PHP skriptu Typický PHP skript pracující s databází dodržuje následující postup: 1. PHP kód, který se postará o připojení k databázi, 2. SQL příkazy srozumitelné databázového systému, kterými specifikujeme, co chceme s databází (strukturou, daty) provést, 3. PHP kód, který zpracuje odpověď od databázového systému, 4. PHP kód, který uzavře spojení z databází. 59

60 Příkazy SQL jazyka SQL, neboli strukturovaný dotazovací jazyk je jazyk, kterému rozumí databáze. Pomocí příkazů SQL jazyka lze: vytvářet / rušit databázi vytvářet, modifikovat, rušit databázové tabulky vyhledávat (vybírat, dolovat) záznamy a jejich data z databáze dle zadaných omezujících (filtračních) podmínek. vkládat, měnit, odstraňovat záznamy a jejich části v databázi Příkazy SQL jazyka Typ příkazů Popis Příkazy Definiční Výběrové Přidávací Aktualizační Odstraňovací Umožňují spravovat strukturu databáze Umožňují získat data z databáze Umožňují přidávat nová data do tabulek Umožňují měnit existující data v databázi Umožňují smazat záznamy (řádky) z databáze CREATE TABLE, DROP TABLE SELECT INSERT UPDATE, REPLACE DELETE 60

61 SQL příkaz SELECT Slouží k výběru dat z databáze. Nejjednodušší tvar příkazu: SELECT * FROM zamestnanci Význam: Vyber všechna data z tabulky zamestnanci. Hvězdička říká, že vybíráme všechny sloupce (všechny atributy záznamu). Místo hvězdičky lze napsat seznam sloupců, které nás zajímají. Ostatní sloupce nás nezajímají a ve výsledných datech nebudou zahrnuty: SELECT jmeno, telefon FROM zamestnanci SQL příkaz SELECT Výsledná data mohou být setříděna podle určitých kritérií. Takto lze získat seznam zaměstnanců se jménem, příjmením a výší jejich platu setříděné podle velikosti platu (vzestupně): SELECT jmeno, prijmeni, plat FROM zamestnanci ORDER BY plat Je-li potřeba data třídit sestupně: SELECT jmeno, prijmeni, plat FROM zamestnanci ORDER BY plat DESC 61

62 SQL příkaz SELECT Výběr dat z tabulky lze omezit (filtrovat) stanovením podmínky za klíčové slovo WHERE: SELECT * FROM zamestnanci WHERE prijmeni = 'Novák' SELECT * FROM zamestnanci WHERE plat > '10000' Pro hledání záznamů vyhovujících určitému vzoru používáme klíčové slovo LIKE. Následující SQL příkaz vybere záznamy všech zaměstnanců, jejichž telefonní číslo začíná trojčíslím 608 : SELECT * FROM zamestnanci WHERE telefon LIKE '608%' SQL příkaz SELECT Pro filtrování záznamů z databáze lze za WHERE stanovit více podmínek, které se spojují pomocí logických operátorů OR a AND: SELECT * FROM zamestnanci WHERE plat < '20000' OR praxe < '2' SELECT * FROM knihy WHERE sklad > '0' AND zanr = 'scifi' Vybere z databázové tabulky knihy záznamy knih, které jsou momentálně na skladě alespoň jedním kusem a zároveň odpovídají sci-fi žánru. Vyhovující záznamy budou setříděny vzestupně podle názvu (A-Z): SELECT * FROM knihy WHERE sklad > '0' AND zanr = 'scifi' ORDER BY nazev 62

63 SQL příkaz SELECT Při velkém množství vyhovujících záznamů (např. tisíce) je nevhodné jejich zpracování a případný výpis v prohlížeči najednou. Pomocí klíčového slova LIMIT lze omezit počet vrácených záznamů. Příkaz vrátí prvních 10 vyhovujících záznamů: SELECT * FROM osoby LIMIT 10 Lze tedy vytvářet listované seznamy záznamů, kdy na první stránce budou vyhovující záznamy prvních 20 osob (záznamy se číslují od 0!!!): SELECT * FROM osoby LIMIT 0, 20 Na druhé stránce dalších 20 osob (atd.): SELECT * FROM osoby LIMIT 20, 20 SQL příkaz INSERT Slouží k vložení nového záznamu (řádky) do databázové tabulky. Obecný zápis SQL příkazu INSERT: INSERT INTO tabulka (seznam sloupců) VALUES (seznam hodnot) Příklad použití: INSERT INTO osoby(jmeno, prijmeni, telefon) VALUES ('Pavel', 'Chmiel', ' ') Místo statických hodnot lze uvést proměnnou, obsahující danou hodnotu: $dotaz = mysql_query("insert INTO osoby (jmeno, prijmeni, telefon, plat) VALUES (' ".$_POST["jmeno"]." ', '".$prijmeni."', '".$tel."', '20000')"); 63

64 SQL příkaz DELETE Slouží k mazání celých záznamů (řádků) z databázové tabulky. Výmaz všech záznamů v databázové tabulce zamestnanci : DELETE FROM zamestnanci Výmaz vybraných záznamů v databázové tabulce zamestnanci : DELETE FROM zamestnanci WHERE rodne_cislo = '550908/1111' DELETE FROM zamestnanci WHERE telefon LIKE '608%' V SQL příkazu DELETE lze použít i klíčová slova LIMIT a ORDER BY: DELETE FROM zamestnanci LIMIT 10 ORDER BY prijmeni Bez ORDER BY však není jasné, kterých 10 záznamů bude odstraněno! SQL příkaz UPDATE Slouží ke změně (aktualizaci) dat u existujících záznamů v databázové tabulce. Obecný tvar příkazu: UPDATE tabulka SET sloupec1='hodnota1', sloupec2='hodnota2' Změna hodnoty vybraných sloupců ve všech řádcích na stejnou hodnotu: UPDATE ucitel SET plat='25000', tridni_ucitel='ano' Změna hodnoty u vybraných řádků tabulky dle zadané podmínky: UPDATE knihy SET cena='250', skladem='ano' WHERE kod='112233' UPDATE osoby SET mesto='havířov' WHERE telefon LIKE '596%' 64

65 Zpracování výsledků dotazu do databáze $pocet = mysql_num_rows($id_vysledek); Funkce slouží ke zjištění, kolik řádků (vyhovujících záznamů) jsme obdrželi na dotaz typu SELECT. Argumentem (vstupem) funkce je identifikátor výsledku, který vrací funkce mysql_query("sql dotaz typu SELECT"). $dotaz = "SELECT * FROM zamestnanec WHERE plat > '10000' "; $id_vysledek = mysql_query($dotaz); // vypíše počet zaměstnanců (záznamů) s platem nad Kč echo mysql_num_rows($id_vysledek); Zpracování výsledků dotazu do databáze $zaznam = mysql_fetch_array($id_vysledek); Funkce vrací pole hodnot vyhovujících záznamů z databázové tabulky nebo hodnotu false, došlo-li k načtení všech záznamů, popř. nevyhovuje žádný záznam z tabulky. Argumentem (vstupem) funkce je identifikátor výsledku, který vrací funkce mysql_query("sql dotaz typu SELECT"). Hodnoty vyhovujících záznamů jsou postupně načítány do proměnné typu pole, kdy indexy pole odpovídají názvům sloupců z databázové tabulky. Jelikož vyhovujících záznamů může být více, použijeme cyklus WHILE. 65

66 Zpracování výsledků dotazu do databáze $dotaz = "SELECT jmeno, plat FROM zamestnanec WHERE plat > '10000' "; $id_vysledek = mysql_query($dotaz); // vypíše jména a výši platu zaměstnanců s platem nad Kč while($zaznam = mysql_fetch_array($id_vysledek)): echo "Zaměstnanec jménem ".$zaznam['jmeno']." má plat ".$zaznam['plat']; echo "<br />"; endwhile; Zpracování výsledků dotazu do databáze Pokud je jisté, že vyhovující záznam bude pouze jeden (např. při ověřování loginu a hesla uživatele), není potřeba používat cyklus WHILE. Je-li sloupec login primárním klíčem, je jisté, že se zde hodnoty neopakují a vyhovuje maximálně 1 záznam. $dotaz = "SELECT * FROM administrators WHERE login = 'chmiel1234' "; $id_vysledek = mysql_query($dotaz); $zaznam = mysql_fetch_array($id_vysledek) echo "Přihlášený administrátor: ".$zaznam['jmeno']." ".$zaznam['prijmeni']; 66

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!

Více

1 Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13 Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Vstupní požadavky, doporučení a metodické pokyny

Vstupní požadavky, doporučení a metodické pokyny Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem

Více

1. Webový server, instalace PHP a MySQL 13

1. Webový server, instalace PHP a MySQL 13 Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. PHP - úvod Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. Klíčové pojmy: PHP, webový prohlížeč, HTTP, FTP Základní pojmy služba WWW = 1990 první prototyp serveru, od roku 1994

Více

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě PHP PHP původně znamenalo Personal Home Page a vzniklo v roce 1996, od té doby prošlo velkými změnami a nyní tato zkratka znamená Hypertext Preprocessor. PHP je skriptovací programovací jazyk, určený především

Více

PHP tutoriál (základy PHP snadno a rychle)

PHP tutoriál (základy PHP snadno a rychle) PHP tutoriál (základy PHP snadno a rychle) Druhá, vylepšená offline verze. Připravil Štěpán Mátl, http://khamos.wz.cz Chceš se naučit základy PHP? V tom případě si prostuduj tento rychlý průvodce. Nejdříve

Více

Inovace bakalářského studijního oboru Aplikovaná chemie http://aplchem.upol.cz

Inovace bakalářského studijního oboru Aplikovaná chemie http://aplchem.upol.cz Inovace bakalářského studijního oboru Aplikovaná chemie http://aplchem.upol.cz CZ.1.07/2.2.00/15.0247 Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. Tvorba

Více

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL, Anotace sady: Dynamické internetové stránky, VY_32_INOVACE_PRG_PHP_01 Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL, Stupeň a typ vzdělávání: gymnaziální vzdělávání, 4. ročník

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/

17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/ 17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/ Úvod 1 Úvod Nedávno jsem zveřejnil návod na vytvoření návštěvní knihy bez nutnosti použít databázi. To je výhodné tehdy, kdy na serveru

Více

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Návrh a tvorba WWW stránek 1/14. PHP a databáze Návrh a tvorba WWW stránek 1/14 PHP a databáze nejčastěji MySQL součástí balíčků PHP navíc podporuje standard ODBC PHP nemá žádné šablony pro práci s databází princip práce s databází je stále stejný opakované

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11 Obsah Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10 Kapitola 1 Než začneme 11 Dynamické vs. statické stránky 11 Co je a k čemu slouží PHP 12 Instalace potřebného softwarového

Více

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

Více

8.2 Používání a tvorba databází

8.2 Používání a tvorba databází 8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam

Více

Aplikační vrstva. Úvod do Php. Ing. Martin Dostal

Aplikační vrstva. Úvod do Php. Ing. Martin Dostal Aplikační vrstva Úvod do Php Ing. Martin Dostal Co to je PHP? php soubory se nekompilují, interpret je spouští přímo bez překladu php běží na serveru php soubor je.txt soubor obsahující php kód: Zkrácený

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Databázové aplikace pro internetové prostředí 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Projekt: Inovace výuky prostřednictvím ICT Registrační číslo: CZ.1.07/1.5.00/34.250

Více

Úvod do databázových systémů

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování 4 fáze vytváření

Více

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Využití OOP v praxi -- Knihovna PHP -- Interval.cz Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování

Více

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve

Více

Sada 1 - PHP. 03. Proměnné, konstanty

Sada 1 - PHP. 03. Proměnné, konstanty S třední škola stavební Jihlava Sada 1 - PHP 03. Proměnné, konstanty Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2 - inovace a

Více

Databázové systémy. Cvičení 6: SQL

Databázové systémy. Cvičení 6: SQL Databázové systémy Cvičení 6: SQL Co je SQL? SQL = Structured Query Language SQL je standardním (ANSI, ISO) textovým počítačovým jazykem SQL umožňuje jednoduchým způsobem přistupovat k datům v databázi

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech

Více

PHP. Čtvrtek 8. září. Čtvrtek 15. září. Anonymní test znalostí

PHP. Čtvrtek 8. září. Čtvrtek 15. září. Anonymní test znalostí Čtvrtek 8. září Anonymní test znalostí Čtvrtek 15. září PHP je programovací jazyk, který pracuje na straně serveru. S PHP můžete ukládat a měnit data webových stránek. PHP původně znamená Personal Home

Více

Úvod do databázových systémů

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Database Research Group Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz

Více

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu } 5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu

Více

Access. Tabulky. Vytvoření tabulky

Access. Tabulky. Vytvoření tabulky Access správa databáze (tabulky, relace, omezující podmínky, data...) uživatelské prostředí pro práci s databází (formuláře, sestavy, datové stránky, makra...) ukázková aplikace Northwind hlavní okno databáze

Více

KIV/ZIS cvičení 5. Tomáš Potužák

KIV/ZIS cvičení 5. Tomáš Potužák KIV/ZIS cvičení 5 Tomáš Potužák Úvod do SQL (1) SQL (Structured Query Language) je standardizovaný strukturovaný dotazovací jazyk pro práci s databází Veškeré operace v databázi se dají provádět pomocí

Více

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5); Programovací jazyk PHP doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Třídy a objekty Výjimky Webové aplikace

Více

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4 CRM SYSTÉM KORMORÁN PŘÍRUČKA ADMINISTRÁTORA Obsah 1 Administrace systému 3 1.1 Uživatelské účty.................................. 3 1.2 Přístupová práva................................. 3 1.3 Moduly.......................................

Více

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika Vyšší odborná škola ekonomická a zdravotnická a Střední škola, Boskovice INOVACE PŘEDMĚTŮ ICT MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika Zpracoval: Jaroslav Kotlán srpen 2009s Úvod Modul Programování

Více

5. POČÍTAČOVÉ CVIČENÍ

5. POČÍTAČOVÉ CVIČENÍ 5. POČÍTAČOVÉ CVIČENÍ Databáze Databázi si můžeme představit jako místo, kam se ukládají všechny potřebné údaje. Přístup k údajům uloženým v databázi obstarává program, kterému se říká Systém Řízení Báze

Více

Maturitní projekt do IVT Pavel Doleček

Maturitní projekt do IVT Pavel Doleček Maturitní projekt do IVT Pavel Doleček CO FILMBOOK JE Filmbook je uzavřená webová aplikace pro celkovou správu informací a dat souvisejících se sledováním filmů. Primárně je zaměřen na uchovávání a spravování

Více

MAXScript výukový kurz

MAXScript výukový kurz MAXScript výukový kurz Díl čtvrtý jazyk MAXScript, část I. Jan Melichar, březen 2008 Jan Melichar (aka JME) strana 1 OBSAH ÚVOD... 4 ZÁKLADNÍ PŘÍKAZY... 5 OPERÁTORY... 6 PROMĚNNÉ... 6 POLE... 7 ZÁVĚREM...

Více

Informační systémy ve zdravotnictví. 6. cvičení

Informační systémy ve zdravotnictví. 6. cvičení Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Informační systémy ve zdravotnictví 6. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2014 Opakování Relace

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Funkce, podmíněný příkaz if-else, příkaz cyklu for Funkce, podmíněný příkaz if-else, příkaz cyklu for Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto

Více

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární

Více

Jazyk SQL databáze SQLite. připravil ing. petr polách

Jazyk SQL databáze SQLite. připravil ing. petr polách Jazyk SQL databáze SQLite připravil ing. petr polách SQL - úvod Structured Query Language (strukturovaný dotazovací jazyk 70. léta min. století) Standardizovaný dotazovací jazyk používaný pro práci s daty

Více

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy

Více

ANOTACE vytvořených/inovovaných materiálů

ANOTACE vytvořených/inovovaných materiálů ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 III/2 Inovace a

Více

Databázové systémy Cvičení 5.2

Databázové systémy Cvičení 5.2 Databázové systémy Cvičení 5.2 SQL jako jazyk pro definici dat Detaily zápisu integritních omezení tabulek Integritní omezení tabulek kromě integritních omezení sloupců lze zadat integritní omezení jako

Více

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Autor: Číslo: Anotace: Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní

Více

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. Přednáška 7 Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. 1 Příkaz expr výraz Celočíselná aritmetika I Zašle na standardní výstup vyhodnocení výrazu

Více

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout.   tel: Skripta ke školení Základy VBA vypracoval: Tomáš Herout e-mail: herout@helpmark.cz tel: 739 719 548 2016 Obsah TROCHA TEORIE VBA...2 ZPŮSOB ZÁPISU VE VBA...2 CO JE TO FUNKCE...2 CO JE TO PROCEDURA...2

Více

PROGRAMOVÁNÍ V SHELLU

PROGRAMOVÁNÍ V SHELLU PROGRAMOVÁNÍ V SHELLU Prostředí, jazyk, zdrojový kód chceme-li posloupnost jistých příkazů používat opakovaně, případně z různých míst adresářové struktury, můžeme tuto posloupnost uložit souboru, který

Více

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni Webové aplikace Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni Harmonogram Dopolední blok 9:00 12:30 Ing. Dostal Úvod, XHTML + CSS Ing. Brada,

Více

Platební systém XPAY [www.xpay.cz]

Platební systém XPAY [www.xpay.cz] Platební systém XPAY [www.xpay.cz] implementace přenosu informace o doručení SMS verze 166 / 1.3.2012 1 Obsah 1 Implementace platebního systému 3 1.1 Nároky platebního systému na klienta 3 1.2 Komunikace

Více

Programování v jazyce JavaScript

Programování v jazyce JavaScript Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Operátory a příkazy BI-JSC Evropský sociální fond

Více

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007 WSH Windows Script Hosting OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007 Co je skript? Skriptování nástroj pro správu systému a automatizaci úloh Umožňuje psát skripty jednoduché interpretované programové

Více

6. Příkazy a řídící struktury v Javě

6. Příkazy a řídící struktury v Javě 6. Příkazy a řídící struktury v Javě Příkazy v Javě Příkazy v Javě Řídicí příkazy (větvení, cykly) Přiřazovací příkaz = Řízení toku programu (větvení, cykly) Volání metody Návrat z metody - příkaz return

Více

Střední odborná škola a Střední odborné učiliště, Hořovice

Střední odborná škola a Střední odborné učiliště, Hořovice Kód DUM : VY_32_INOVACE_DYN.1.18 Název materiálu: Anotace Autor Jazyk Očekávaný výstup 18 PHP- Základy práce s databází PHP - MySQL DUM naučí žáky postupu při vytvoření, připojení databáze a vytvoření

Více

Použití databází na Webu

Použití databází na Webu 4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2010/11/18 11:33:52 $ Obsah Co nás čeká... 3 Architektura webových databázových aplikací... 4 K čemu se používají databázové

Více

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro

Více

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK Systém WorkWatch je určen pro malé a střední firmy, které se zabývají službami nebo zakázkovou výrobou. Zajistí dokonalý přehled o všech zakázkách a jejich rozpracovanosti.

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání Čtvrtek 3. listopadu Makra v Excelu Obecná definice makra: Podle definice je makro strukturovanou definicí jedné nebo několika akcí, které chceme, aby MS Excel vykonal jako odezvu na nějakou námi definovanou

Více

Microsoft. Access. Nová databáze, návrh tabulky. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

Microsoft. Access. Nová databáze, návrh tabulky. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie Microsoft Access Nová databáze, návrh tabulky Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie Dlouhodobý úkol Ahoj! Dnes vás čeká vytvoření první databáze (tabulky). Budeme evidovat

Více

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal Databázové systémy - SQL * definice dat * aktualizace * pohledy Tomáš Skopal Osnova přednášky definice dat definice (schémat) tabulek a integritních omezení CREATE TABLE změna definice schématu ALTER TABLE

Více

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Web Jaroslav Nečas Obsah přednášky Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Co to je web HTTP protokol bezstavový GET POST HEAD Cookies Session HTTPS

Více

Střední odborná škola a Střední odborné učiliště, Hořovice

Střední odborná škola a Střední odborné učiliště, Hořovice Kód DUM : VY_32_INOVACE_DYN.1.19 Název materiálu: 19 PHP- Základy práce s databází PHP 2. část MySQL (Aplikace knihovna) Anotace Autor Jazyk Očekávaný výstup DUM je žákům průvodcem vytvoření databáze knih

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 04. Datové typy, operace, logické operátory Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

Více

Sada 1 - PHP. 09. Formuláře

Sada 1 - PHP. 09. Formuláře S třední škola stavební Jihlava Sada 1 - PHP 09. Formuláře Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2 - inovace a zkvalitnění

Více

PSK3-9. Základy skriptování. Hlavička

PSK3-9. Základy skriptování. Hlavička PSK3-9 Název školy: Autor: Anotace: Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Základy skriptování v unixovém shellu Vzdělávací oblast: Informační a komunikační technologie

Více

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávání v informačních a komunikačních technologií

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávání v informačních a komunikačních technologií VY_32_INOVACE_33_05 Škola Střední průmyslová škola Zlín Název projektu, reg. č. Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávací oblast Vzdělávání v informačních a komunikačních

Více

MySQLi (objektově) Příklad vytvoření instance třídy včetně parametrů pro připojení: $mysqli = new mysqli('localhost', 'login', 'heslo', 'databaze');

MySQLi (objektově) Příklad vytvoření instance třídy včetně parametrů pro připojení: $mysqli = new mysqli('localhost', 'login', 'heslo', 'databaze'); MySQLi (objektově) Rozšíření PHP MySQL - základní rozšíření umožňující práci s MySQL. Doporučuje se ho používat pouze do verze MySQL 4.1.3. I když je funkční i u novějších verzí, neumožňuje využití nových

Více

6 Příkazy řízení toku

6 Příkazy řízení toku 6 Příkazy řízení toku Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům pro řízení toku programu. Pro všechny tyto základní

Více

language="javascript">... </script>.

language=javascript>... </script>. WWW (World Wide Web) je dnes společně s elektronickou poštou nejvyužívanější službou internetu. URL (Uniform Resource Locator) slouží ke kompletní adresaci informace na internetu. Udává jak protokol, který

Více

DUM 06 téma: Tvorba makra pomocí VBA

DUM 06 téma: Tvorba makra pomocí VBA DUM 06 téma: Tvorba makra pomocí VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie

Více

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován. Instalace Produkt se neinstaluje. Stačí soubor uložit na libovolné místo na Vašem počítací (klikněte pravým tlačítkem a dejte 'uložit cíl jako ), pak jen spustit. Požadavky na software Produkt je odzkoušen

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

Střední odborná škola a Střední odborné učiliště, Hořovice

Střední odborná škola a Střední odborné učiliště, Hořovice Kód DUM : VY_32_INOVACE_DYN.1.06 Název materiálu: Anotace Autor Jazyk Očekávaný výstup 06 Základ psaní skriptů v jazyce PHP DUM provede žáka jednoduchým skriptem, který sečte a znásobí dvě čísla Ing. Vladimír

Více

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev Úvod do databází Modelování v řízení Ing. Petr Kalčev Co je databáze? Množina záznamů a souborů, které jsou organizovány za určitým účelem. Jaké má mít přínosy? Rychlost Spolehlivost Přesnost Bezpečnost

Více

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE WEBOWÉ STRÁNKY TŘÍD KAMIL POPELKA ZÁVĚREČNÁ MATURITNÍ PRÁCE BRNO 2011 Prohlášení Prohlašuji, že maturitní práce je mým původním autorským dílem, které

Více

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou MySQL Typy tabulek Storage Engines MyISAM defaultní, neumí transakce, umí fulltext InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) MEMORY (HEAP) v paměti; neumí transakce ARCHIVE velké množství

Více

DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 61 DATABÁZE - ACCESS. (příprava k vykonání testu ECDL Modul 5 Databáze a systémy pro zpracování dat)

DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 61 DATABÁZE - ACCESS. (příprava k vykonání testu ECDL Modul 5 Databáze a systémy pro zpracování dat) DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 61 DATABÁZE - ACCESS (příprava k vykonání testu ECDL Modul 5 Databáze a systémy pro zpracování dat) DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 62 Databáze a systémy pro uchování

Více

DATABÁZE MS ACCESS 2010

DATABÁZE MS ACCESS 2010 DATABÁZE MS ACCESS 2010 KAPITOLA 5 PRAKTICKÁ ČÁST TABULKY POPIS PROSTŘEDÍ Spuštění MS Access nadefinovat název databáze a cestu k uložení databáze POPIS PROSTŘEDÍ Nahoře záložky: Soubor (k uložení souboru,

Více

Tabulkový procesor. Základní rysy

Tabulkový procesor. Základní rysy Tabulkový procesor Tabulkový procesor je počítačový program zpracovávající data uložená v buňkách tabulky. Program umožňuje použití vzorců pro práci s daty a zobrazuje výsledné hodnoty podle vstupních

Více

24 Uživatelské výběry

24 Uživatelské výběry 24 Uživatelské výběry Uživatelský modul Uživatelské výběry slouží k vytváření, správě a následnému používání tématicky seskupených osob a organizací včetně jejich kontaktních údajů. Modul umožňuje hromadnou

Více

Ukázka knihy z internetového knihkupectví www.kosmas.cz

Ukázka knihy z internetového knihkupectví www.kosmas.cz Ukázka knihy z internetového knihkupectví www.kosmas.cz U k á z k a k n i h y z i n t e r n e t o v é h o k n i h k u p e c t v í w w w. k o s m a s. c z, U I D : K O S 1 8 1 2 0 1 U k á z k a k n i h

Více

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Příkaz switch Příkaz switch provede příslušnou skupinu příkazů na základě hodnoty proměnné (celočíselné

Více

Administrace Oracle. Práva a role, audit

Administrace Oracle. Práva a role, audit Administrace Oracle Práva a role, audit Filip Řepka 2010 Práva (privileges) Objekty (tabulky, pohledy, procedury,...) jsou v databázi logicky rozděleny do schémat. Každý uživatel má přiděleno svoje schéma

Více

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory Jazyk C Program v jazyku C má následující strukturu: Direktivy procesoru Globální definice (platné a známé v celém programu) Funkce Hlavička funkce Tělo funkce je uzavřeno mezi složené závorky { Lokální

Více

Kontingenční tabulky v MS Excel 2010

Kontingenční tabulky v MS Excel 2010 Kontingenční tabulky v MS Excel 2010 Autor: RNDr. Milan Myšák e-mail: milan.mysak@konero.cz Obsah 1 Vytvoření KT... 3 1.1 Data pro KT... 3 1.2 Tvorba KT... 3 2 Tvorba KT z dalších zdrojů dat... 5 2.1 Data

Více

Úvod do programování. Lekce 1

Úvod do programování. Lekce 1 Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -

Více

Zápis programu v jazyce C#

Zápis programu v jazyce C# Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač

Více

Jazyk PL/SQL Úvod, blok

Jazyk PL/SQL Úvod, blok Jazyk PL/SQL Úvod, blok 1 Bc. Tomáš Romanovský Procedural Language for Structured Query Language Součást systému Oracle, rozšíření SQL o procedurální rysy Prostředky pro vytváření a spouštění programových

Více

Informační systém pro e-learning manuál

Informační systém pro e-learning manuál Informační systém pro e-learning manuál Verze 1.00 Úvod Tento dokument popisuje způsob práce s informačním systémem pro elektronické vzdělávání. Systém je určený pro vytvoření elektronického kurzu a jeho

Více

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM CÍLE KAPITOLY Využívat pokročilé možnosti formátování, jako je podmíněné formátování, používat vlastní formát čísel a umět pracovat s listy. Používat

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Autor: Číslo: Anotace: Inovace a zkvalitnění výuky prostřednictvím ICT Databáze Základní seznámení s MySQL

Více

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi. Databáze Základní pojmy Pojem databáze označuje obecně souhrn informací, údajů, dat o nějakých objektech. Úkolem databáze je hlídat dodržení všech omezení a dále poskytovat data při operacích. Objekty

Více

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5 Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5

Více

Formuláře. Aby nám mohli uživatelé něco hezného napsat...... třeba co si o nás myslí!

Formuláře. Aby nám mohli uživatelé něco hezného napsat...... třeba co si o nás myslí! Formuláře Aby nám mohli uživatelé něco hezného napsat...... třeba co si o nás myslí! HTML formuláře: Formuláře Možnost, jak uživatel může vložit obsah na web - odeslat data na server - zpracovat data ve

Více

RELAČNÍ DATABÁZE ACCESS

RELAČNÍ DATABÁZE ACCESS RELAČNÍ DATABÁZE ACCESS 1. Úvod... 2 2. Základní pojmy... 3 3. Vytvoření databáze... 5 4. Základní objekty databáze... 6 5. Návrhové zobrazení tabulky... 7 6. Vytváření tabulek... 7 6.1. Vytvoření tabulky

Více