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>
|