From e6e3b73f19d324128abc2bc3f481564a971a6197 Mon Sep 17 00:00:00 2001 From: skrabanek Date: Mon, 9 Mar 2026 13:11:04 +0100 Subject: [PATCH] =?UTF-8?q?pridan=20zzz=20materi=C3=A1l?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- php/zzz_sqlite-join/actions/delete.php | 19 ++++ php/zzz_sqlite-join/actions/index.php | 4 + php/zzz_sqlite-join/actions/insert.php | 22 +++++ php/zzz_sqlite-join/actions/update.php | 47 ++++++++++ php/zzz_sqlite-join/admin.php | 62 +++++++++++++ php/zzz_sqlite-join/index.php | 55 +++++++++++ php/zzz_sqlite-join/init.php | 75 +++++++++++++++ php/zzz_sqlite-join/update.php | 42 +++++++++ php/zzz_sqlite-up-del/actions/delete.php | 19 ++++ php/zzz_sqlite-up-del/actions/index.php | 4 + php/zzz_sqlite-up-del/actions/insert.php | 22 +++++ php/zzz_sqlite-up-del/actions/update.php | 47 ++++++++++ php/zzz_sqlite-up-del/index.php | 53 +++++++++++ php/zzz_sqlite-up-del/init.php | 37 ++++++++ php/zzz_sqlite-up-del/update.php | 42 +++++++++ php/zzz_sqlite-uvod/index.php | 87 ++++++++++++++++++ .../ukazka.sqlite} | Bin 12288 -> 12288 bytes 17 files changed, 637 insertions(+) create mode 100644 php/zzz_sqlite-join/actions/delete.php create mode 100644 php/zzz_sqlite-join/actions/index.php create mode 100644 php/zzz_sqlite-join/actions/insert.php create mode 100644 php/zzz_sqlite-join/actions/update.php create mode 100644 php/zzz_sqlite-join/admin.php create mode 100644 php/zzz_sqlite-join/index.php create mode 100644 php/zzz_sqlite-join/init.php create mode 100644 php/zzz_sqlite-join/update.php create mode 100644 php/zzz_sqlite-up-del/actions/delete.php create mode 100644 php/zzz_sqlite-up-del/actions/index.php create mode 100644 php/zzz_sqlite-up-del/actions/insert.php create mode 100644 php/zzz_sqlite-up-del/actions/update.php create mode 100644 php/zzz_sqlite-up-del/index.php create mode 100644 php/zzz_sqlite-up-del/init.php create mode 100644 php/zzz_sqlite-up-del/update.php create mode 100644 php/zzz_sqlite-uvod/index.php rename php/{02ukazka.sqlite => zzz_sqlite-uvod/ukazka.sqlite} (98%) diff --git a/php/zzz_sqlite-join/actions/delete.php b/php/zzz_sqlite-join/actions/delete.php new file mode 100644 index 0000000..09ce4fb --- /dev/null +++ b/php/zzz_sqlite-join/actions/delete.php @@ -0,0 +1,19 @@ +prepare("DELETE FROM intro WHERE id = :id"); +// KONTROLA -> echo $sql . "
"; + +//vykonání příkazu a následný "report" +if ($query->execute(["id" => $id])) { + echo "příkaz byl vykonán"; + header("Location: /?del=$id"); +} else { + echo "Error: DELETE selhal"; +} + + +?> diff --git a/php/zzz_sqlite-join/actions/index.php b/php/zzz_sqlite-join/actions/index.php new file mode 100644 index 0000000..58b8026 --- /dev/null +++ b/php/zzz_sqlite-join/actions/index.php @@ -0,0 +1,4 @@ + diff --git a/php/zzz_sqlite-join/actions/insert.php b/php/zzz_sqlite-join/actions/insert.php new file mode 100644 index 0000000..2d0fe90 --- /dev/null +++ b/php/zzz_sqlite-join/actions/insert.php @@ -0,0 +1,22 @@ +prepare("INSERT INTO intro (nazev, autor, rok_vydani) VALUES (:nazev, :autor, :rok_vydani)"); +// KONTROLA -> echo $sql . "
"; +//vykonání příkazu a následný "report" +if ($query->execute(["nazev" => $nazev, "autor" => $autor, "rok_vydani" => $rok_vydani])) { + $last_id = $pdo->lastInsertId(); + echo "příkaz byl vykonán - ID:" . $last_id; + header("Location: /?id=$last_id"); +} else { + echo "Error: INSERT selhal"; +} + + +?> diff --git a/php/zzz_sqlite-join/actions/update.php b/php/zzz_sqlite-join/actions/update.php new file mode 100644 index 0000000..48bb0f4 --- /dev/null +++ b/php/zzz_sqlite-join/actions/update.php @@ -0,0 +1,47 @@ +prepare($sql); +if ($query->execute($params)) { + echo "příkaz byl vykonán"; + header("Location: /?up=$id"); +} else { + echo "Error: UPDATE selhal"; +} diff --git a/php/zzz_sqlite-join/admin.php b/php/zzz_sqlite-join/admin.php new file mode 100644 index 0000000..09d7d15 --- /dev/null +++ b/php/zzz_sqlite-join/admin.php @@ -0,0 +1,62 @@ +prepare("SELECT vypujceni.id, zakaznici.username, intro.nazev, vypujceni.vraceno, vypujceni.datum_vypujceni, vypujceni.datum_vraceni +FROM vypujceni +INNER JOIN zakaznici ON vypujceni.id_zakaznici = zakaznici.id +INNER JOIN intro ON vypujceni.id_intro = intro.id"); +$query->execute(); +$vypujcky = $query->fetchAll(PDO::FETCH_ASSOC); +?> + + + + + + + + ADMIN + + + +

Admin page

+

HOME

+ + + + + + + + + + + + + "; + echo ""; + echo ""; + echo ""; + //dynamické využití proměnné + if ($row["vraceno"]) { + echo ""; + } else { + echo ""; + } + echo ""; + echo ""; + echo ""; + } + ?> +
iduživatelnázev knihyvrácenoDatum vypujčeníDatum vrácení
". $row["id"]."". $row["username"]."". $row["nazev"]."VrácenoNevráceno". $row["datum_vypujceni"]."". $row["datum_vraceni"]."
+ + diff --git a/php/zzz_sqlite-join/index.php b/php/zzz_sqlite-join/index.php new file mode 100644 index 0000000..3500504 --- /dev/null +++ b/php/zzz_sqlite-join/index.php @@ -0,0 +1,55 @@ +prepare("SELECT * FROM intro ORDER BY id DESC"); +$query->execute(); +$books = $query->fetchAll(PDO::FETCH_ASSOC); +?> + + + + + + + KNIHOVNA + + +

Knihovna

+

UPDATE DATA

+

ADMIN

+ + +
+
+
+
+ +
+ + Byla vytvořena kniha s ID:".$_GET["id"].""; + } + if (isset($_GET["del"])){ + echo "

Byla odstraněna kniha s ID:".$_GET["del"]."

"; + } + if (isset($_GET["up"])){ + echo "

Byla upravena kniha s ID:".$_GET["up"]."

"; + } + ?> + + + + + diff --git a/php/zzz_sqlite-join/init.php b/php/zzz_sqlite-join/init.php new file mode 100644 index 0000000..920c634 --- /dev/null +++ b/php/zzz_sqlite-join/init.php @@ -0,0 +1,75 @@ +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); +} catch (PDOException $e) { + die("Chyba připojení k databázi: " . $e->getMessage()); +} + +//zapnutí foreign keys +$pdo->exec("PRAGMA foreign_keys = ON"); + +//vytvoření tabulek pokud neexistují +$pdo->exec("CREATE TABLE IF NOT EXISTS intro ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + nazev VARCHAR(64) NOT NULL, + autor VARCHAR(64) NOT NULL, + rok_vydani INTEGER NOT NULL +)"); + +$pdo->exec("CREATE TABLE IF NOT EXISTS zakaznici ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + username VARCHAR(64) NOT NULL, + first_name VARCHAR(64) NOT NULL, + last_name VARCHAR(64) NOT NULL +)"); + +$pdo->exec("CREATE TABLE IF NOT EXISTS vypujceni ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + id_zakaznici INTEGER NOT NULL, + id_intro INTEGER NOT NULL, + datum_vypujceni DATETIME NOT NULL, + datum_vraceni DATETIME NOT NULL, + vraceno INTEGER NOT NULL, + FOREIGN KEY (id_zakaznici) REFERENCES zakaznici(id), + FOREIGN KEY (id_intro) REFERENCES intro(id) +)"); + +//vložení výchozích dat pokud jsou tabulky prázdné +$query = $pdo->prepare("SELECT COUNT(*) FROM intro"); +$query->execute(); +$count = $query->fetchColumn(); + +if ($count == 0) { + $pdo->exec("INSERT INTO intro (id, nazev, autor, rok_vydani) VALUES + (1, 'Kytice', 'Jaromir Erben', 1901), + (2, 'Karlštejn', 'Nějaky autor', 2022), + (3, 'Steti', 'Neznamy', 2002), + (4, 'Médeia', 'Euripidés', 5), + (5, 'Evžen Oněgin', 'A. S. Puškin', 1823), + (6, 'RUR', 'K. Čapek', 1920), + (7, 'Spalovač mrtvol', 'L. Fuks', 1967), + (8, 'Petr a Lucie', 'R. Rolland', 1920) + "); + + $pdo->exec("INSERT INTO zakaznici (id, username, first_name, last_name) VALUES + (1, 'franta', 'Frantíšek', 'Novák'), + (2, 'pepa', 'Josef', 'Tyl'), + (3, 'kubino', 'Jakub', 'Pospíšil'), + (4, 'asvo', 'Alena', 'Svobodová'), + (5, 'olhe', 'Olga', 'Helclová') + "); + + $pdo->exec("INSERT INTO vypujceni (id, id_zakaznici, id_intro, datum_vypujceni, datum_vraceni, vraceno) VALUES + (1, 2, 3, '2023-01-12 10:27:56', '2023-02-01 12:00:00', 0), + (2, 2, 4, '2023-01-12 10:28:39', '2023-02-01 12:00:00', 0), + (3, 2, 7, '2023-01-12 10:30:19', '2023-02-01 13:15:30', 1), + (4, 4, 8, '2023-01-12 10:31:10', '2023-02-01 13:15:30', 1), + (5, 4, 4, '2023-01-12 10:31:23', '2023-02-01 13:15:30', 1), + (6, 5, 6, '2023-01-12 10:31:53', '2023-02-01 13:15:30', 0) + "); +} +?> diff --git a/php/zzz_sqlite-join/update.php b/php/zzz_sqlite-join/update.php new file mode 100644 index 0000000..7f4b592 --- /dev/null +++ b/php/zzz_sqlite-join/update.php @@ -0,0 +1,42 @@ +prepare("SELECT * FROM intro"); +$query->execute(); +$books = $query->fetchAll(PDO::FETCH_ASSOC); +?> + + + + + + + UPDATE + + +

UPDATE DATA

+ +
+
+
+
+
+ +
+ + + + + + diff --git a/php/zzz_sqlite-up-del/actions/delete.php b/php/zzz_sqlite-up-del/actions/delete.php new file mode 100644 index 0000000..09ce4fb --- /dev/null +++ b/php/zzz_sqlite-up-del/actions/delete.php @@ -0,0 +1,19 @@ +prepare("DELETE FROM intro WHERE id = :id"); +// KONTROLA -> echo $sql . "
"; + +//vykonání příkazu a následný "report" +if ($query->execute(["id" => $id])) { + echo "příkaz byl vykonán"; + header("Location: /?del=$id"); +} else { + echo "Error: DELETE selhal"; +} + + +?> diff --git a/php/zzz_sqlite-up-del/actions/index.php b/php/zzz_sqlite-up-del/actions/index.php new file mode 100644 index 0000000..58b8026 --- /dev/null +++ b/php/zzz_sqlite-up-del/actions/index.php @@ -0,0 +1,4 @@ + diff --git a/php/zzz_sqlite-up-del/actions/insert.php b/php/zzz_sqlite-up-del/actions/insert.php new file mode 100644 index 0000000..2d0fe90 --- /dev/null +++ b/php/zzz_sqlite-up-del/actions/insert.php @@ -0,0 +1,22 @@ +prepare("INSERT INTO intro (nazev, autor, rok_vydani) VALUES (:nazev, :autor, :rok_vydani)"); +// KONTROLA -> echo $sql . "
"; +//vykonání příkazu a následný "report" +if ($query->execute(["nazev" => $nazev, "autor" => $autor, "rok_vydani" => $rok_vydani])) { + $last_id = $pdo->lastInsertId(); + echo "příkaz byl vykonán - ID:" . $last_id; + header("Location: /?id=$last_id"); +} else { + echo "Error: INSERT selhal"; +} + + +?> diff --git a/php/zzz_sqlite-up-del/actions/update.php b/php/zzz_sqlite-up-del/actions/update.php new file mode 100644 index 0000000..48bb0f4 --- /dev/null +++ b/php/zzz_sqlite-up-del/actions/update.php @@ -0,0 +1,47 @@ +prepare($sql); +if ($query->execute($params)) { + echo "příkaz byl vykonán"; + header("Location: /?up=$id"); +} else { + echo "Error: UPDATE selhal"; +} diff --git a/php/zzz_sqlite-up-del/index.php b/php/zzz_sqlite-up-del/index.php new file mode 100644 index 0000000..c60af3e --- /dev/null +++ b/php/zzz_sqlite-up-del/index.php @@ -0,0 +1,53 @@ +prepare("SELECT * FROM intro ORDER BY id DESC"); +$query->execute(); +$books = $query->fetchAll(PDO::FETCH_ASSOC); +?> + + + + + + + KNIHOVNA + + +

Knihovna

+

UPDATE DATA

+ +
+
+
+
+ +
+ + Byla vytvořena kniha s ID:".$_GET["id"].""; + } + if (isset($_GET["del"])){ + echo "

Byla odstraněna kniha s ID:".$_GET["del"]."

"; + } + if (isset($_GET["up"])){ + echo "

Byla upravena kniha s ID:".$_GET["up"]."

"; + } + ?> + + + + + diff --git a/php/zzz_sqlite-up-del/init.php b/php/zzz_sqlite-up-del/init.php new file mode 100644 index 0000000..69bcffb --- /dev/null +++ b/php/zzz_sqlite-up-del/init.php @@ -0,0 +1,37 @@ +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); +} catch (PDOException $e) { + die("Chyba připojení k databázi: " . $e->getMessage()); +} + +//vytvoření tabulky pokud neexistuje +$pdo->exec("CREATE TABLE IF NOT EXISTS intro ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + nazev VARCHAR(64) NOT NULL, + autor VARCHAR(64) NOT NULL, + rok_vydani INTEGER NOT NULL +)"); + +//vložení výchozích dat pokud je tabulka prázdná +$query = $pdo->prepare("SELECT COUNT(*) FROM intro"); +$query->execute(); +$count = $query->fetchColumn(); + +if ($count == 0) { + $pdo->exec("INSERT INTO intro (id, nazev, autor, rok_vydani) VALUES + (1, 'Kytice', 'Jaromir Erben', 1901), + (2, 'Karlštejn', 'Nějaky autor', 2022), + (3, 'Steti', 'Neznamy', 2002), + (4, 'Médeia', 'Euripidés', 5), + (5, 'Evžen Oněgin', 'A. S. Puškin', 1823), + (6, 'RUR', 'K. Čapek', 1920), + (7, 'Spalovač mrtvol', 'L. Fuks', 1967), + (8, 'Petr a Lucie', 'R. Rolland', 1920) + "); +} +?> diff --git a/php/zzz_sqlite-up-del/update.php b/php/zzz_sqlite-up-del/update.php new file mode 100644 index 0000000..7f4b592 --- /dev/null +++ b/php/zzz_sqlite-up-del/update.php @@ -0,0 +1,42 @@ +prepare("SELECT * FROM intro"); +$query->execute(); +$books = $query->fetchAll(PDO::FETCH_ASSOC); +?> + + + + + + + UPDATE + + +

UPDATE DATA

+ +
+
+
+
+
+ +
+ + + + + + diff --git a/php/zzz_sqlite-uvod/index.php b/php/zzz_sqlite-uvod/index.php new file mode 100644 index 0000000..efef7cc --- /dev/null +++ b/php/zzz_sqlite-uvod/index.php @@ -0,0 +1,87 @@ +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + +// 2) VYTVOŘENÍ TABULKY (pokud ještě neexistuje) +// ----------------------------------------------- +$pdo->exec("CREATE TABLE IF NOT EXISTS zaci ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + jmeno TEXT NOT NULL, + vek INTEGER NOT NULL +)"); + +// 3) ZPRACOVÁNÍ FORMULÁŘE - přidání žáka +// ---------------------------------------- +if (isset($_POST["pridat"])) { + $jmeno = $_POST["jmeno"]; + $vek = $_POST["vek"]; + + // prepare + execute = bezpečný způsob vkládání dat + $query = $pdo->prepare("INSERT INTO zaci (jmeno, vek) VALUES (:jmeno, :vek)"); + $query->execute(["jmeno" => $jmeno, "vek" => $vek]); + + // přesměrování zpět (aby se formulář neposlal znovu při refreshi) + header("Location: index.php"); + exit; +} +x +// 4) ZPRACOVÁNÍ SMAZÁNÍ +// ---------------------- +if (isset($_GET["smazat"])) { + $id = $_GET["smazat"]; + + $query = $pdo->prepare("DELETE FROM zaci WHERE id = :id"); + $query->execute(["id" => $id]); + + header("Location: index.php"); + exit; +} + +// 5) NAČTENÍ VŠECH ŽÁKŮ Z DATABÁZE +// ----------------------------------- +$query = $pdo->prepare("SELECT * FROM zaci ORDER BY id DESC"); +$query->execute(); +$zaci = $query->fetchAll(PDO::FETCH_ASSOC); +?> + + + + + SQLite úvod + + +

Seznam žáků

+ + +
+ + + +
+ + + + + +

Žádní žáci v databázi.

+ + + diff --git a/php/02ukazka.sqlite b/php/zzz_sqlite-uvod/ukazka.sqlite similarity index 98% rename from php/02ukazka.sqlite rename to php/zzz_sqlite-uvod/ukazka.sqlite index fe5bce4910cd9dc973e10e00c999faad957e2f34..9fa435710c0efa1e626d7be9355f36a4476b1e7a 100644 GIT binary patch delta 46 zcmZojXh@il#Akn#mw|zSiC>X{znEWfV<8JaCl@2TxTq*&WBKGdetAZP&2#ya6#xM( B3YGu> delta 49 zcmZojXh@il#1}8c%fP_E#IMA_U&61nSx{gT-(*GpU`|d(c5zWr#>Udgwfyp%=kg~j F000zW3rYY0