17 changed files with 637 additions and 0 deletions
@ -0,0 +1,19 @@ |
|||
<?php |
|||
require "../init.php"; |
|||
//Příprava dat |
|||
$id = $_GET["id"]; |
|||
|
|||
//SQL příkaz s přijímaní dat z formuláře |
|||
$query = $pdo->prepare("DELETE FROM intro WHERE id = :id"); |
|||
// KONTROLA -> echo $sql . "<br>"; |
|||
|
|||
//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"; |
|||
} |
|||
|
|||
|
|||
?> |
|||
@ -0,0 +1,4 @@ |
|||
<?php |
|||
|
|||
header("Location: /"); |
|||
?> |
|||
@ -0,0 +1,22 @@ |
|||
<?php |
|||
require "../init.php"; |
|||
|
|||
//Příprava dat |
|||
$nazev = $_GET["nazev"]; |
|||
$autor = $_GET["autor"]; |
|||
$rok_vydani = $_GET["rok_vydani"]; |
|||
|
|||
//SQL příkaz s přijímaní dat z formuláře |
|||
$query = $pdo->prepare("INSERT INTO intro (nazev, autor, rok_vydani) VALUES (:nazev, :autor, :rok_vydani)"); |
|||
// KONTROLA -> echo $sql . "<br>"; |
|||
//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"; |
|||
} |
|||
|
|||
|
|||
?> |
|||
@ -0,0 +1,47 @@ |
|||
<?php |
|||
require "../init.php"; |
|||
|
|||
//Příprava dat |
|||
$id = $_POST["id"]; |
|||
$nazev = $_POST["nazev"]; |
|||
$autor = $_POST["autor"]; |
|||
$rok_vydani = $_POST["rok_vydani"]; |
|||
|
|||
// základ SQL |
|||
$sql = "UPDATE intro SET "; |
|||
$params = []; |
|||
|
|||
//Dynamické doplnění |
|||
if ($nazev != "") { |
|||
$sql = $sql . "nazev = :nazev "; |
|||
$params["nazev"] = $nazev; |
|||
//zajištění čárky pro více úprav |
|||
if ($autor != "" || $rok_vydani != "") { |
|||
$sql = $sql . ", "; |
|||
} |
|||
} |
|||
if ($autor != "") { |
|||
$sql = $sql . "autor = :autor "; |
|||
$params["autor"] = $autor; |
|||
//zajištění čárky pro více úprav |
|||
if ($rok_vydani != "") { |
|||
$sql = $sql . ", "; |
|||
} |
|||
} |
|||
if ($rok_vydani != "") { |
|||
$sql = $sql . "rok_vydani = :rok_vydani "; |
|||
$params["rok_vydani"] = $rok_vydani; |
|||
} |
|||
//SQL zakončení |
|||
$sql = $sql . "WHERE id = :id"; |
|||
$params["id"] = $id; |
|||
|
|||
//echo $sql; |
|||
|
|||
$query = $pdo->prepare($sql); |
|||
if ($query->execute($params)) { |
|||
echo "příkaz byl vykonán"; |
|||
header("Location: /?up=$id"); |
|||
} else { |
|||
echo "Error: UPDATE selhal"; |
|||
} |
|||
@ -0,0 +1,62 @@ |
|||
<?php |
|||
//napojení na DB |
|||
require "init.php"; |
|||
|
|||
//příprava k zobrazení dat |
|||
$query = $pdo->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); |
|||
?> |
|||
|
|||
<!DOCTYPE html> |
|||
<html lang="en"> |
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
|||
<meta name="viewport" content="width=, initial-scale=1.0"> |
|||
<title>ADMIN</title> |
|||
<style> |
|||
td, th{ |
|||
border: 1px solid black; |
|||
}; |
|||
</style> |
|||
</head> |
|||
<body> |
|||
<h1>Admin page</h1> |
|||
<h3><a href="/">HOME</a></h3> |
|||
<!-- TABULKA V ADMINU --> |
|||
<table> |
|||
<!-- HLAVIČKA --> |
|||
<tr> |
|||
<th>id</th> |
|||
<th>uživatel</th> |
|||
<th>název knihy</th> |
|||
<th>vráceno</th> |
|||
<th>Datum vypujčení</th> |
|||
<th>Datum vrácení</th> |
|||
</tr> |
|||
<!-- DATA Z DATABAZE -> GENEROVANI PHP --> |
|||
<?php |
|||
//vypsat data |
|||
foreach ($vypujcky as $row) { |
|||
echo "<tr>"; |
|||
echo "<td>". $row["id"]."</td>"; |
|||
echo "<td>". $row["username"]."</td>"; |
|||
echo "<td>". $row["nazev"]."</td>"; |
|||
//dynamické využití proměnné |
|||
if ($row["vraceno"]) { |
|||
echo "<td>Vráceno</td>"; |
|||
} else { |
|||
echo "<td>Nevráceno</td>"; |
|||
} |
|||
echo "<td>". $row["datum_vypujceni"]."</td>"; |
|||
echo "<td>". $row["datum_vraceni"]."</td>"; |
|||
echo "</tr>"; |
|||
} |
|||
?> |
|||
</table> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,55 @@ |
|||
<?php |
|||
//napojení na DB |
|||
require "init.php"; |
|||
|
|||
//příprava k zobrazení dat |
|||
$query = $pdo->prepare("SELECT * FROM intro ORDER BY id DESC"); |
|||
$query->execute(); |
|||
$books = $query->fetchAll(PDO::FETCH_ASSOC); |
|||
?> |
|||
<!DOCTYPE html> |
|||
<html lang="en"> |
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|||
<title>KNIHOVNA</title> |
|||
</head> |
|||
<body> |
|||
<h1>Knihovna</h1> |
|||
<h3><a href="/update.php">UPDATE DATA</a></h3> |
|||
<h3><a href="/admin.php">ADMIN</a></h3> |
|||
|
|||
<!-- FORMULÁŘ PRO ODESILÁNÍ NOVÝ KNÍŽKY --> |
|||
<form action="/actions/insert.php" method="get"> |
|||
<input type="text" name="nazev" id="nazev" placeholder="nazev"><br> |
|||
<input type="text" name="autor" id="autor" placeholder="autor"><br> |
|||
<input type="number" name="rok_vydani" id="rok_vydani" placeholder="Rok vydání"><br> |
|||
<input type="submit" value="Odeslat"> |
|||
</form> |
|||
<!-- ALERT při vytvoření knihy --> |
|||
<?php |
|||
if (isset($_GET["id"])){ |
|||
echo "<h2>Byla vytvořena kniha s ID:".$_GET["id"]."</h2>"; |
|||
} |
|||
if (isset($_GET["del"])){ |
|||
echo "<h2>Byla odstraněna kniha s ID:".$_GET["del"]."</h2>"; |
|||
} |
|||
if (isset($_GET["up"])){ |
|||
echo "<h2>Byla upravena kniha s ID:".$_GET["up"]."</h2>"; |
|||
} |
|||
?> |
|||
<!-- TABULKA PRO VYPISOVÁNÍ Z DATABÁZE --> |
|||
<ul> |
|||
<?php |
|||
//vypsat data |
|||
foreach ($books as $row) { |
|||
echo "<li>" . $row["id"]. ") ". $row["nazev"]." <-- ". $row["autor"]." | rok: ".$row["rok_vydani"]; |
|||
echo ' <a href="/actions/delete.php?id='.$row["id"].'">Vymazat</a>'; |
|||
echo "</li>"; |
|||
} |
|||
?> |
|||
</ul> |
|||
|
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,75 @@ |
|||
<?php |
|||
//napojení na DB (SQLite přes PDO) |
|||
$db_file = __DIR__ . "/database.sqlite"; |
|||
|
|||
try { |
|||
$pdo = new PDO("sqlite:" . $db_file); |
|||
$pdo->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) |
|||
"); |
|||
} |
|||
?> |
|||
@ -0,0 +1,42 @@ |
|||
<?php |
|||
//napojení na DB |
|||
require "init.php"; |
|||
|
|||
//příprava k zobrazení dat |
|||
$query = $pdo->prepare("SELECT * FROM intro"); |
|||
$query->execute(); |
|||
$books = $query->fetchAll(PDO::FETCH_ASSOC); |
|||
?> |
|||
<!DOCTYPE html> |
|||
<html lang="en"> |
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|||
<title>UPDATE</title> |
|||
</head> |
|||
<body> |
|||
<h1>UPDATE DATA</h1> |
|||
<!-- FORMULÁŘ PRO ODESILÁNÍ NOVÝ KNÍŽKY --> |
|||
<form action="actions/update.php" method="post"> |
|||
<input type="text" name="id" id="id" placeholder="ID"><br> |
|||
<input type="text" name="nazev" id="nazev" placeholder="nazev"><br> |
|||
<input type="text" name="autor" id="autor" placeholder="autor"><br> |
|||
<input type="number" name="rok_vydani" id="rok_vydani" placeholder="Rok vydání"><br> |
|||
<input type="submit" value="Odeslat"> |
|||
</form> |
|||
|
|||
<!-- TABULKA PRO VYPISOVÁNÍ Z DATABÁZE --> |
|||
<ul> |
|||
<?php |
|||
//vypsat data |
|||
foreach ($books as $row) { |
|||
echo "<li>" . $row["id"]. ") ". $row["nazev"]." <-- ". $row["autor"]." | rok: ".$row["rok_vydani"]; |
|||
echo ' <a href="delete.php?id='.$row["id"].'">Vymazat</a>'; |
|||
echo "</li>"; |
|||
} |
|||
?> |
|||
</ul> |
|||
|
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,19 @@ |
|||
<?php |
|||
require "../init.php"; |
|||
//Příprava dat |
|||
$id = $_GET["id"]; |
|||
|
|||
//SQL příkaz s přijímaní dat z formuláře |
|||
$query = $pdo->prepare("DELETE FROM intro WHERE id = :id"); |
|||
// KONTROLA -> echo $sql . "<br>"; |
|||
|
|||
//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"; |
|||
} |
|||
|
|||
|
|||
?> |
|||
@ -0,0 +1,4 @@ |
|||
<?php |
|||
|
|||
header("Location: /"); |
|||
?> |
|||
@ -0,0 +1,22 @@ |
|||
<?php |
|||
require "../init.php"; |
|||
|
|||
//Příprava dat |
|||
$nazev = $_GET["nazev"]; |
|||
$autor = $_GET["autor"]; |
|||
$rok_vydani = $_GET["rok_vydani"]; |
|||
|
|||
//SQL příkaz s přijímaní dat z formuláře |
|||
$query = $pdo->prepare("INSERT INTO intro (nazev, autor, rok_vydani) VALUES (:nazev, :autor, :rok_vydani)"); |
|||
// KONTROLA -> echo $sql . "<br>"; |
|||
//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"; |
|||
} |
|||
|
|||
|
|||
?> |
|||
@ -0,0 +1,47 @@ |
|||
<?php |
|||
require "../init.php"; |
|||
|
|||
//Příprava dat |
|||
$id = $_POST["id"]; |
|||
$nazev = $_POST["nazev"]; |
|||
$autor = $_POST["autor"]; |
|||
$rok_vydani = $_POST["rok_vydani"]; |
|||
|
|||
// základ SQL |
|||
$sql = "UPDATE intro SET "; |
|||
$params = []; |
|||
|
|||
//Dynamické doplnění |
|||
if ($nazev != "") { |
|||
$sql = $sql . "nazev = :nazev "; |
|||
$params["nazev"] = $nazev; |
|||
//zajištění čárky pro více úprav |
|||
if ($autor != "" || $rok_vydani != "") { |
|||
$sql = $sql . ", "; |
|||
} |
|||
} |
|||
if ($autor != "") { |
|||
$sql = $sql . "autor = :autor "; |
|||
$params["autor"] = $autor; |
|||
//zajištění čárky pro více úprav |
|||
if ($rok_vydani != "") { |
|||
$sql = $sql . ", "; |
|||
} |
|||
} |
|||
if ($rok_vydani != "") { |
|||
$sql = $sql . "rok_vydani = :rok_vydani "; |
|||
$params["rok_vydani"] = $rok_vydani; |
|||
} |
|||
//SQL zakončení |
|||
$sql = $sql . "WHERE id = :id"; |
|||
$params["id"] = $id; |
|||
|
|||
//echo $sql; |
|||
|
|||
$query = $pdo->prepare($sql); |
|||
if ($query->execute($params)) { |
|||
echo "příkaz byl vykonán"; |
|||
header("Location: /?up=$id"); |
|||
} else { |
|||
echo "Error: UPDATE selhal"; |
|||
} |
|||
@ -0,0 +1,53 @@ |
|||
<?php |
|||
//napojení na DB |
|||
require "init.php"; |
|||
|
|||
//příprava k zobrazení dat |
|||
$query = $pdo->prepare("SELECT * FROM intro ORDER BY id DESC"); |
|||
$query->execute(); |
|||
$books = $query->fetchAll(PDO::FETCH_ASSOC); |
|||
?> |
|||
<!DOCTYPE html> |
|||
<html lang="en"> |
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|||
<title>KNIHOVNA</title> |
|||
</head> |
|||
<body> |
|||
<h1>Knihovna</h1> |
|||
<h3><a href="/update.php">UPDATE DATA</a></h3> |
|||
<!-- FORMULÁŘ PRO ODESILÁNÍ NOVÝ KNÍŽKY --> |
|||
<form action="/actions/insert.php" method="get"> |
|||
<input type="text" name="nazev" id="nazev" placeholder="nazev"><br> |
|||
<input type="text" name="autor" id="autor" placeholder="autor"><br> |
|||
<input type="number" name="rok_vydani" id="rok_vydani" placeholder="Rok vydání"><br> |
|||
<input type="submit" value="Odeslat"> |
|||
</form> |
|||
<!-- ALERT při vytvoření knihy --> |
|||
<?php |
|||
if (isset($_GET["id"])){ |
|||
echo "<h2>Byla vytvořena kniha s ID:".$_GET["id"]."</h2>"; |
|||
} |
|||
if (isset($_GET["del"])){ |
|||
echo "<h2>Byla odstraněna kniha s ID:".$_GET["del"]."</h2>"; |
|||
} |
|||
if (isset($_GET["up"])){ |
|||
echo "<h2>Byla upravena kniha s ID:".$_GET["up"]."</h2>"; |
|||
} |
|||
?> |
|||
<!-- TABULKA PRO VYPISOVÁNÍ Z DATABÁZE --> |
|||
<ul> |
|||
<?php |
|||
//vypsat data |
|||
foreach ($books as $row) { |
|||
echo "<li>" . $row["id"]. ") ". $row["nazev"]." <-- ". $row["autor"]." | rok: ".$row["rok_vydani"]; |
|||
echo ' <a href="/actions/delete.php?id='.$row["id"].'">Vymazat</a>'; |
|||
echo "</li>"; |
|||
} |
|||
?> |
|||
</ul> |
|||
|
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,37 @@ |
|||
<?php |
|||
//napojení na DB (SQLite přes PDO) |
|||
$db_file = __DIR__ . "/database.sqlite"; |
|||
|
|||
try { |
|||
$pdo = new PDO("sqlite:" . $db_file); |
|||
$pdo->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) |
|||
"); |
|||
} |
|||
?> |
|||
@ -0,0 +1,42 @@ |
|||
<?php |
|||
//napojení na DB |
|||
require "init.php"; |
|||
|
|||
//příprava k zobrazení dat |
|||
$query = $pdo->prepare("SELECT * FROM intro"); |
|||
$query->execute(); |
|||
$books = $query->fetchAll(PDO::FETCH_ASSOC); |
|||
?> |
|||
<!DOCTYPE html> |
|||
<html lang="en"> |
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|||
<title>UPDATE</title> |
|||
</head> |
|||
<body> |
|||
<h1>UPDATE DATA</h1> |
|||
<!-- FORMULÁŘ PRO ODESILÁNÍ NOVÝ KNÍŽKY --> |
|||
<form action="actions/update.php" method="post"> |
|||
<input type="text" name="id" id="id" placeholder="ID"><br> |
|||
<input type="text" name="nazev" id="nazev" placeholder="nazev"><br> |
|||
<input type="text" name="autor" id="autor" placeholder="autor"><br> |
|||
<input type="number" name="rok_vydani" id="rok_vydani" placeholder="Rok vydání"><br> |
|||
<input type="submit" value="Odeslat"> |
|||
</form> |
|||
|
|||
<!-- TABULKA PRO VYPISOVÁNÍ Z DATABÁZE --> |
|||
<ul> |
|||
<?php |
|||
//vypsat data |
|||
foreach ($books as $row) { |
|||
echo "<li>" . $row["id"]. ") ". $row["nazev"]." <-- ". $row["autor"]." | rok: ".$row["rok_vydani"]; |
|||
echo ' <a href="delete.php?id='.$row["id"].'">Vymazat</a>'; |
|||
echo "</li>"; |
|||
} |
|||
?> |
|||
</ul> |
|||
|
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,87 @@ |
|||
<?php |
|||
// ============================================= |
|||
// ÚVOD DO SQLITE + PHP (PDO) |
|||
// ============================================= |
|||
// SQLite = databáze uložená v jednom souboru |
|||
// Nepotřebujeme žádný server (jako MySQL) |
|||
// PDO = univerzální způsob jak se v PHP připojit k databázi |
|||
// ============================================= |
|||
|
|||
// 1) PŘIPOJENÍ K DATABÁZI |
|||
// ----------------------- |
|||
// Soubor "ukazka.sqlite" se vytvoří automaticky |
|||
$pdo = new PDO("sqlite:" . __DIR__ . "/ukazka.sqlite"); |
|||
$pdo->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); |
|||
?> |
|||
<!DOCTYPE html> |
|||
<html lang="cs"> |
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<title>SQLite úvod</title> |
|||
</head> |
|||
<body> |
|||
<h1>Seznam žáků</h1> |
|||
|
|||
<!-- FORMULÁŘ pro přidání --> |
|||
<form method="post"> |
|||
<input type="text" name="jmeno" placeholder="Jméno" required> |
|||
<input type="number" name="vek" placeholder="Věk" required> |
|||
<button type="submit" name="pridat">Přidat</button> |
|||
</form> |
|||
|
|||
<!-- VÝPIS z databáze --> |
|||
<ul> |
|||
<?php foreach ($zaci as $zak): ?> |
|||
<li> |
|||
<?= $zak["id"] ?>) <?= $zak["jmeno"] ?> - <?= $zak["vek"] ?> let |
|||
<a href="?smazat=<?= $zak["id"] ?>">smazat</a> |
|||
</li> |
|||
<?php endforeach; ?> |
|||
</ul> |
|||
|
|||
<?php if (empty($zaci)): ?> |
|||
<p>Žádní žáci v databázi.</p> |
|||
<?php endif; ?> |
|||
</body> |
|||
</html> |
|||
Binary file not shown.
Loading…
Reference in new issue