131 lines
4.1 KiB
PHP
131 lines
4.1 KiB
PHP
<!DOCTYPE html>
|
|
<html>
|
|
<?php
|
|
|
|
// Session starten
|
|
session_start();
|
|
|
|
if (isset($_POST['function'])) {
|
|
$function = $_POST['function'];
|
|
switch($function) {
|
|
case 'addBookToCart':
|
|
addBookToCart($_POST['id']);
|
|
break;
|
|
case 'removeBookFromCart':
|
|
removeBookFromCart($_POST['id']);
|
|
break;
|
|
case 'increaseQuantity':
|
|
increaseQuantity($_POST['id']);
|
|
break;
|
|
case 'decreaseQuantity':
|
|
decreaseQuantity($_POST['id']);
|
|
break;
|
|
default:
|
|
echo "Funktion existiert nicht.";
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Fügt ein Buch zum Warenkorb hinzu.
|
|
*/
|
|
function addBookToCart($bookID) {
|
|
// Überprüfen, ob bereits ein Warenkorb hinterlegt ist
|
|
if (!(isset($_SESSION['cart']))) {
|
|
// Wenn nicht, Einkaufswagen hinterlegen
|
|
$_SESSION['cart'] = array();
|
|
}
|
|
|
|
// Wurde das Buch bereits zum Warenkorb hinzugefügt?
|
|
if (isset($_SESSION['cart'][$bookID])) {
|
|
// Buch liegt bereits im Warenkorb, Menge erhöhen
|
|
increaseQuantity($bookID);
|
|
}
|
|
else {
|
|
// Buch liegt noch nicht im Warenkorb, jetzt hinzufügen
|
|
$_SESSION['cart'][$bookID] = array('quantity' => 1);
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Entfernt ein Buch aus dem Warenkorb.
|
|
*/
|
|
function removeBookFromCart($bookID) {
|
|
// Ü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]);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Erhöht die Menge eines Buches im Warenkorb.
|
|
*/
|
|
function increaseQuantity($bookID) {
|
|
// Verbinden mit der Datenbank
|
|
$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.MaxAnzahl
|
|
FROM `buch` AS b
|
|
WHERE b.BuchID = ?;");
|
|
|
|
// Parameter binden
|
|
$sql->bind_param("i", $bookID);
|
|
|
|
// SQL-Befehl ausführen
|
|
$sql->execute();
|
|
|
|
// Ergebnis speichern
|
|
$result = $sql->get_result();
|
|
|
|
if (!$result) {
|
|
die("Ungültige SQL-Abfrage: " . mysqli_connect_error());
|
|
}
|
|
|
|
// Ergebnis verarbeiten
|
|
if (mysqli_num_rows($result) > 0) {
|
|
while($row = mysqli_fetch_assoc($result)) {
|
|
$bookID = $row['BuchID'];
|
|
$bookMaxQuantity = $row['MaxAnzahl'];
|
|
}
|
|
} else {
|
|
echo "Kein Buch mit dieser ID vorhanden.";
|
|
}
|
|
|
|
// Verbindung schließen
|
|
mysqli_close($connection);
|
|
|
|
// Wurde die maximale Menge bereits erreicht?
|
|
if ($_SESSION['cart'][$bookID]['quantity'] < $bookMaxQuantity) {
|
|
/* Maximale Menge wurde noch nicht erreicht, die Menge im
|
|
Warenkorb kann erhöht werden */
|
|
$_SESSION['cart'][$bookID]['quantity'] += 1;
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Verringert die Menge eines Buches im Warenkorb.
|
|
*/
|
|
function decreaseQuantity($bookID) {
|
|
// Ist die Menge höher als 1?
|
|
if ($_SESSION['cart'][$bookID]['quantity'] > 1) {
|
|
// Menge des Buches kann verringert werden
|
|
$_SESSION['cart'][$bookID]['quantity'] -= 1;
|
|
}
|
|
}
|
|
|
|
?>
|
|
</html>
|