Candle/warenkorb_funktionen.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>