Candle/reservierung_bestaetigung.php

358 lines
14 KiB
PHP
Raw Normal View History

2023-06-14 18:23:07 +02:00
<!--
TODO:
- 80 Zeichen
-->
2023-05-26 16:39:10 +02:00
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Reservierungsbestätigung</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
2023-06-12 10:30:40 +02:00
<script src="notwendiges_laden.js" defer></script>
2023-05-26 16:39:10 +02:00
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
2023-06-14 20:31:11 +02:00
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
2023-05-26 16:39:10 +02:00
2023-06-14 18:23:07 +02:00
<?php
session_start();
// Benutzer ID abholen
//$userID = ?;
$userID = 5;
// Überprüfen, ob Bücher im Warenkorb liegen
if(isset($_SESSION['cart']) && !empty($_SESSION['cart'])) {
// Jedes Buch im Warenkorb durchgehen
foreach ($_SESSION["cart"] as $key=>$item) {
// Ausgewählte Menge speichern
$quantity = $item['quantity'];
$sql = '';
$servername = "localhost";
$username = "web_b-3";
$password = "een7Ao6s";
$dbname = "bibliothek_candle";
$connection =
mysqli_connect($servername, $username, $password, $dbname);
if (!$connection) {
die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
}
/* SQL-Befehl vorbereiten */
$sql = $connection->prepare("SELECT b.BuchID, b.Anzahl,
b.MaxAnzahl
FROM `buch` AS b
WHERE b.BuchID = ?
GROUP BY b.BuchID;");
// Parameter binden
$sql->bind_param("i", $ID);
// ID festlegen
$ID = $key;
// SQL-Befehl ausführen
$sql->execute();
// Ergebnis speichern
$result = $sql->get_result();
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$bookID = $row['BuchID'];
$bookQuantity = $row['Anzahl'];
$bookMaxQuantity = $row['MaxAnzahl'];
$quantityNew = $quantity;
// Überprüfen, ob die ausgewählte Menge vorhanden ist
if ($bookQuantity == 0) {
// Alle Bücher ausgeliehen
$sqlSearch = $connection->prepare(
"SELECT AusleihID,
Enddatum,
Reserviert
FROM `ausgeliehenes_buch`
WHERE BuchID=?
AND Reserviert=0
ORDER BY `Enddatum` LIMIT ?;");
// Parameter binden
$sqlSearch->bind_param("ii", $bookID, $quantity);
// SQL-Befehl ausführen
$sqlSearch->execute();
// Ergebnis speichern
$resultSearch = $sqlSearch->get_result();
// Alle Ergebnisse durchgehen
while($rowSearch = mysqli_fetch_assoc($resultSearch)) {
$borrowID = $rowSearch['AusleihID'];
$borrowEndDate = $rowSearch['Enddatum'];
//Buch zu `ausgeliehenes_buch` hinzufügen
$sqlInsert =
"INSERT INTO `ausgeliehenes_buch`
(`AusleihID`, `BenutzerID`, `BuchID`,
`Anfangsdatum`, `Enddatum`, `Verlängerbar`,
`Reserviert`)
VALUES
(NULL, '$userID', '$bookID',
DATE_ADD('$borrowEndDate', INTERVAL 1 DAY),
DATE_ADD(
DATE_ADD('$borrowEndDate', INTERVAL 1 DAY),
INTERVAL 14 DAY),
'1', '0');";
mysqli_query($connection, $sqlInsert);
// Anzahl des Buches in der Datenbank reduzieren
$sqlUpdate = $connection->prepare(
"UPDATE `ausgeliehenes_buch`
SET `Verlängerbar` = '0',
`Reserviert` = '1'
WHERE `AusleihID` = ?;");
// Parameter binden
$sqlUpdate->bind_param("i", $borrowID);
// SQL-Befehl ausführen
$sqlUpdate->execute();
}
}
else if ($quantity <= $bookQuantity) {
// Ausgewählte Menge ist komplett vorhanden
// Alle gleichen Bücher in die Datenbank einfügen
while ($quantityNew != 0) {
// Buch zu `ausgeliehenes_buch` hinzufügen
$sqlInsert =
"INSERT INTO `ausgeliehenes_buch`
(`AusleihID`, `BenutzerID`, `BuchID`,
`Anfangsdatum`, `Enddatum`, `Verlängerbar`,
`Reserviert`)
VALUES
(NULL, '$userID', '$bookID', CURDATE(),
DATE_ADD(CURDATE(), INTERVAL 14 DAY),
'1', '0'); ";
mysqli_query($connection, $sqlInsert);
$quantityNew--;
}
$bookQuantityNew = $bookQuantity - $quantity;
// Anzahl des Buches in der Datenbank reduzieren
$sqlReduce = $connection->prepare(
"UPDATE `buch`
SET `Anzahl` = '$bookQuantityNew'
WHERE `buch`.`BuchID` = ?;");
// Parameter binden
$sqlReduce->bind_param("i", $bookID);
// SQL-Befehl ausführen
$sqlReduce->execute();
}
else if ($quantity > $bookQuantity) {
// Bücher, welche noch vorhanden sind
// Alle gleichen Bücher in die Datenbank einfügen
$quantityNew = $quantity - $bookQuantity;
$quantityRest = $quantity;
while ($quantityNew != 0) {
//Buch zu `ausgeliehenes_buch` hinzufügen
$sqlInsert =
"INSERT INTO `ausgeliehenes_buch`
(`AusleihID`, `BenutzerID`, `BuchID`,
`Anfangsdatum`, `Enddatum`, `Verlängerbar`,
`Reserviert`)
VALUES
(NULL, '$userID', '$bookID', CURDATE(),
DATE_ADD(CURDATE(), INTERVAL 14 DAY),
'1', '0'); ";
mysqli_query($connection, $sqlInsert);
$quantityNew--;
$quantityRest--;
}
$bookQuantityNew =
$bookQuantity - ($quantity - $bookQuantity);
// Anzahl des Buches in der Datenbank reduzieren
$sqlReduce = $connection->prepare(
"UPDATE `buch`
SET `Anzahl` = '$bookQuantityNew'
WHERE `buch`.`BuchID` = ?;");
// Parameter binden
$sqlReduce->bind_param("i", $bookID);
// SQL-Befehl ausführen
$sqlReduce->execute();
// Bücher, welche bereits ausgeliehen wurden
$sqlSearch = $connection->prepare(
"SELECT AusleihID,
Enddatum,
Reserviert
FROM `ausgeliehenes_buch`
WHERE BuchID=?
AND Reserviert=0
ORDER BY `Enddatum` LIMIT ?;");
// Parameter binden
$sqlSearch->bind_param("ii", $bookID, $quantityRest);
// SQL-Befehl ausführen
$sqlSearch->execute();
// Ergebnis speichern
$resultSearch = $sqlSearch->get_result();
// Alle Ergebnisse durchgehen
while($rowSearch = mysqli_fetch_assoc($resultSearch)) {
$borrowID = $rowSearch['AusleihID'];
$borrowEndDate = $rowSearch['Enddatum'];
//Buch zu `ausgeliehenes_buch` hinzufügen
$sqlInsert =
"INSERT INTO `ausgeliehenes_buch`
(`AusleihID`, `BenutzerID`, `BuchID`,
`Anfangsdatum`, `Enddatum`, `Verlängerbar`,
`Reserviert`)
VALUES
(NULL, '$userID', '$bookID',
DATE_ADD('$borrowEndDate', INTERVAL 1 DAY),
DATE_ADD(
DATE_ADD('$borrowEndDate', INTERVAL 1 DAY),
INTERVAL 14 DAY),
'1', '0');";
mysqli_query($connection, $sqlInsert);
// Anzahl des Buches in der Datenbank reduzieren
$sqlUpdate = $connection->prepare(
"UPDATE `ausgeliehenes_buch`
SET `Verlängerbar` = '0',
`Reserviert` = '1'
WHERE `AusleihID` = ?;");
// Parameter binden
$sqlUpdate->bind_param("i", $borrowID);
// SQL-Befehl ausführen
$sqlUpdate->execute();
}
}
}
} else {
echo "Buch konnte nicht gefunden werden.";
}
mysqli_close($connection);
// Buch aus dem Warenkorb löschen
// Überprüfen, ob das Buch im Warenkorb liegt
if (isset($_SESSION['cart'][$bookID])) {
// Buch existiert im Warenkorb, kann gelöscht werden
unset($_SESSION['cart'][$bookID]);
}
}
}
2023-05-26 16:39:10 +02:00
2023-06-14 18:23:07 +02:00
?>
2023-05-26 16:39:10 +02:00
<div id="reservierung">
<h1>Reservierung erfolgreich bestätigt</h1>
<div id="reservierung-left">
<p id="erklärung">Ihre Reservierung wurde bestätigt. Einen Überblick über Ihre reservierten Bücher
sowie die Informationen darüber, ab wann ein Buch verfügbar ist und bis wann es spätestens abgeholt
werden muss, finden Sie auf der Seite "<a href="meinebuecher.php">Meine Bücher</a>".</p>
2023-05-26 16:39:10 +02:00
<div id="button-container">
<a href="meinebuecher.php">Meine Bücher</a>
2023-05-26 16:39:10 +02:00
</div>
</div>
</div>
<!--Link JS file-->
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
2023-06-14 18:26:05 +02:00
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
2023-05-26 16:39:10 +02:00
2023-06-12 11:23:37 +02:00
<nav id="activeid" class="active"></nav>
2023-05-26 16:39:10 +02:00
2023-06-12 10:30:40 +02:00
<footer id="footer" class="fuss" ></footer>
2023-05-26 16:39:10 +02:00
</body>
</html>