$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]); } } } ?>

Reservierung erfolgreich bestätigt

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 "Meine Bücher".