$link = mysqli_connect("localhost","root","root","mrkvicka");: Příkaz vytváří spojení s databází MySQL. "localhost" je adresa serveru MySQL. "root" a "root" jsou uživatelské jméno a heslo k přihlášení na server MySQL. "mrkvicka" je název databáze, se kterou se chceme spojit. mysqli_set_charset($link,"UTF-8");: Nastavuje kódování pro komunikaci s databází na UTF-8, což je standardní kódování pro webové aplikace obsahující znaky z více jazyků. $sql = "SELECT * FROM nastroje";: Připravuje SQL dotaz pro výběr všech položek (* znamená všechny sloupce) z tabulky "nastroje" v databázi. $dotaz = mysqli_prepare($link, $sql);: Vytváříme připravený dotaz pro provedení v databázi. $link je připojení k databázi, které jsme vytvořili dříve. $sql je proměnná obsahující SQL dotaz, který jsme napsali dříve. Co je to připravený dotaz? Připravený dotaz je způsob, jak bezpečně zpracovat dotazy s proměnnými hodnotami. V tomto případě nám to umožňuje bezpečně provádět dotazy s hodnotami z formuláře. Připravuje SQL dotaz pro provedení a nahrání do proměnné $dotaz. mysqli_stmt_execute($dotaz);: Provede připravený SQL dotaz. $hodnoty = mysqli_stmt_get_result($dotaz);: Získá výsledky SQL dotazu a ukládá je do proměnné $hodnoty. while ($radky = mysqli_fetch_assoc($hodnoty)) : Používá smyčku pro projití všech řádků výsledků dotazu. if (mb_strlen($radky["NazevN"]) > $_GET["chars"]) : Ověřuje, zda délka hodnoty v poli "NazevN" (název nástroje) je větší než hodnota zadaná ve formuláři (v poli "chars"). foreach ($radky as $radek) { ... }: Používá další smyčku pro projití všech hodnot v aktuálním řádku. PARAMETRICKY ----------- $sql = "INSERT INTO Tabulka VALUES (?, ?, ?)"; nebo např $đql = "INSERT INTO Tabulka (sloupec1) VALUES (?)"; $stmt = mysqli_prepare($link, $sql); mysqli_stmt_bind_param($stmt, "sss", $hodnota1, $hodnota2, $hodnota3); mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); příklad: $nazev = "hodnota"; // Předem definovaná hodnota pro příklad // Připravený dotaz s parametrem $sql = "SELECT * FROM Tabulka WHERE nazev_sloupce = ?"; $stmt = mysqli_prepare($link, $sql); // Vazba parametru a nastavení hodnoty mysqli_stmt_bind_param($stmt, "s", $nazev); // Spuštění dotazu mysqli_stmt_execute($stmt); // Získání výsledků $result = mysqli_stmt_get_result($stmt); // Zpracování výsledků dotazu while ($row = mysqli_fetch_assoc($result)) { // Zpracování jednotlivých řádků } // Uzavření připraveného dotazu mysqli_stmt_close($stmt)