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>
|
2023-06-12 16:17:49 +02:00
|
|
|
<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">
|
2023-06-12 16:17:49 +02:00
|
|
|
<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
|
2023-05-31 13:51:15 +02:00
|
|
|
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">
|
2023-05-31 13:51:15 +02:00
|
|
|
<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>
|
|
|
|
|
2023-05-31 13:51:15 +02:00
|
|
|
</html>
|