diff --git a/reservierung_bestaetigung.php b/reservierung_bestaetigung.php index 1b24de1..f146531 100644 --- a/reservierung_bestaetigung.php +++ b/reservierung_bestaetigung.php @@ -1,3 +1,8 @@ + + @@ -49,7 +54,266 @@ + $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) { + echo "Ich bin ein Platzhalter"; + // 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

diff --git a/warenkorb.php b/warenkorb.php index 942a05a..4bbe8cb 100644 --- a/warenkorb.php +++ b/warenkorb.php @@ -1,9 +1,7 @@