Browse Source

add join

master
Jakub Škrabánek 2 years ago
parent
commit
41f9580450
  1. 18
      mysql-join/actions/delete.php
  2. 4
      mysql-join/actions/index.php
  3. 23
      mysql-join/actions/insert.php
  4. 40
      mysql-join/actions/update.php
  5. 64
      mysql-join/admin.php
  6. 56
      mysql-join/index.php
  7. 68
      mysql-join/localhost.sql
  8. 43
      mysql-join/update.php

18
mysql-join/actions/delete.php

@ -0,0 +1,18 @@
<?php
require "../init.php";
//Příprava dat
$id = $_GET["id"];
//SQL příkaz s přijímaní dat z formuláře
$sql = "DELETE FROM intro WHERE id=$id";
// KONTROLA -> echo $sql . "<br>";
//vykonání příkazu a následný "report"
if (mysqli_query($conn,$sql)) {
echo "příkaz byl vykonán";
header("Location: /?del=$id");
} else {
echo "Error:" .$sql."<br>". mysqli_errno($conn);
}
?>

4
mysql-join/actions/index.php

@ -0,0 +1,4 @@
<?php
header("Location: /");
?>

23
mysql-join/actions/insert.php

@ -0,0 +1,23 @@
<?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
$sql = "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 (mysqli_query($conn,$sql)) {
$last_id = mysqli_insert_id($conn);
echo "příkaz byl vykonán - ID:" . $last_id;
header("Location: /?id=$last_id");
} else {
echo "Error:" .$sql."<br>". mysqli_errno($conn);
}
?>

40
mysql-join/actions/update.php

@ -0,0 +1,40 @@
<?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 ";
//Dynamické doplnění
if ($nazev != "") {
$sql = $sql . "nazev='$nazev' ";
//zajištění čárky pro více úprav
if ($autor != "" || $rok_vydani != "") {
$sql = $sql . ", ";
}
}
if ($autor != "") {
$sql = $sql . "autor='$autor' ";
//zajištění čárky pro více úprav
if ($rok_vydani != "") {
$sql = $sql . ", ";
}
}
if ($rok_vydani != "") {
$sql = $sql . "rok_vydani='$rok_vydani' ";
}
//SQL zakončení
$sql = $sql . "WHERE id=$id";
//echo $sql;
if (mysqli_query($conn,$sql)) {
echo "příkaz byl vykonán";
header("Location: /?up=$id");
} else {
echo "Error:" .$sql."<br>". mysqli_errno($conn);
}

64
mysql-join/admin.php

@ -0,0 +1,64 @@
<?php
//napojení na DB
require "init.php";
//příprava k zobrazení dat
$sql = "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)
;";
$result = mysqli_query($conn,$sql);
?>
<!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
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)){
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>

56
mysql-join/index.php

@ -0,0 +1,56 @@
<?php
//napojení na DB
require "init.php";
//příprava k zobrazení dat
$sql = "SELECT * FROM intro ORDER BY id DESC";
$result = mysqli_query($conn,$sql);
?>
<!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
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)){
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>

68
mysql-join/localhost.sql

@ -0,0 +1,68 @@
-- Adminer 4.7.6 MySQL dump
SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
DROP TABLE IF EXISTS `intro`;
CREATE TABLE `intro` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nazev` varchar(64) COLLATE utf8_czech_ci NOT NULL,
`autor` varchar(64) COLLATE utf8_czech_ci NOT NULL,
`rok_vydani` int(5) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
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),
(34, '15knižek', '15spisovatelu', 1515),
(36, 'Update kniha', 'Update autor', 2022);
DROP TABLE IF EXISTS `vypujceni`;
CREATE TABLE `vypujceni` (
`id` int(64) NOT NULL AUTO_INCREMENT,
`id_zakaznici` int(10) NOT NULL,
`id_intro` int(10) unsigned NOT NULL,
`datum_vypujceni` datetime NOT NULL,
`datum_vraceni` datetime NOT NULL,
`vraceno` bit(1) NOT NULL,
PRIMARY KEY (`id`),
KEY `id_zakaznici` (`id_zakaznici`),
KEY `id_intro` (`id_intro`),
CONSTRAINT `vypujceni_ibfk_1` FOREIGN KEY (`id_zakaznici`) REFERENCES `zakaznici` (`id`),
CONSTRAINT `vypujceni_ibfk_2` FOREIGN KEY (`id_intro`) REFERENCES `intro` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
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', CONV('0', 2, 10) + 0),
(2, 2, 4, '2023-01-12 10:28:39', '2023-02-01 12:00:00', CONV('0', 2, 10) + 0),
(3, 2, 7, '2023-01-12 10:30:19', '2023-02-01 13:15:30', CONV('1', 2, 10) + 0),
(4, 4, 8, '2023-01-12 10:31:10', '2023-02-01 13:15:30', CONV('1', 2, 10) + 0),
(5, 4, 4, '2023-01-12 10:31:23', '2023-02-01 13:15:30', CONV('1', 2, 10) + 0),
(6, 5, 6, '2023-01-12 10:31:53', '2023-02-01 13:15:30', CONV('0', 2, 10) + 0);
DROP TABLE IF EXISTS `zakaznici`;
CREATE TABLE `zakaznici` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(64) COLLATE utf8_czech_ci NOT NULL,
`first_name` varchar(64) COLLATE utf8_czech_ci NOT NULL,
`last_name` varchar(64) COLLATE utf8_czech_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
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á');
-- 2023-01-13 10:03:13

43
mysql-join/update.php

@ -0,0 +1,43 @@
<?php
//napojení na DB
require "init.php";
//příprava k zobrazení dat
$sql = "SELECT * FROM intro";
$result = mysqli_query($conn,$sql);
?>
<!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
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)){
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>
Loading…
Cancel
Save