prepare("SELECT productID FROM products WHERE productID = ?"); $checkStmt->bind_param("i", $productId); $checkStmt->execute(); $checkResult = $checkStmt->get_result(); if ($checkResult->num_rows === 0) { include __DIR__ . '/404.php'; exit; } /** * @brief Behandelt das Löschen von Bewertungen. * @details Administrator-, Moderator-Nutzer und der Autor können Bewertungen über einen POST-Request löschen. * Überprüft die Nutzerrolle in der Session und führt das DELETE-Statement aus. */ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete_review']) && isset($_POST['delete_review_id'])) { $deleteId = (int)$_POST['delete_review_id']; $isAdminOrMod = !empty($_SESSION['user_roles']) && (in_array('ADMIN', $_SESSION['user_roles'], true) || in_array('MODERATOR', $_SESSION['user_roles'], true)); if ($isAdminOrMod) { $delStmt = $conn->prepare("DELETE FROM reviews WHERE reviewID = ?"); $delStmt->bind_param("i", $deleteId); $delStmt->execute(); $delStmt->close(); } elseif (isset($_SESSION['user_id'])) { $delStmt = $conn->prepare("DELETE FROM reviews WHERE reviewID = ? AND userID = ?"); $delStmt->bind_param("ii", $deleteId, $_SESSION['user_id']); $delStmt->execute(); $delStmt->close(); } if ($isAdminOrMod || isset($_SESSION['user_id'])) { echo ""; exit; } } ?> prepare(" SELECT a.name, a.unit, a.dataType, pa.valueString, pa.valueNumber, pa.valueBool, p.model, p.description, p.imagePath, p.categoryID FROM products p LEFT JOIN categoryAttributes ca ON p.categoryID = ca.categoryID LEFT JOIN attributes a ON ca.attributeID = a.attributeID LEFT JOIN productAttributes pa ON pa.productID = p.productID AND pa.attributeID = a.attributeID WHERE p.productID = ? ORDER BY a.attributeID "); $stmt->bind_param("i", $productId); $stmt->execute(); $result = $stmt->get_result(); $product = $result->fetch_assoc(); if (!$product) { die("Produkt nicht gefunden."); } $categoryId = $product['categoryID']; /** * @brief Initialer Status für die Wunschliste. */ $alreadyInWishlist = false; /** * @brief Prüft, ob sich das Produkt bereits auf der Wunschliste des angemeldeten Nutzers befindet. * @details Falls der Nutzer angemeldet ist (`user_id` ist gesetzt), wird in `userFavorites` gesucht. */ if (isset($_SESSION['user_id'])) { $stmtCheck = mysqli_prepare( $conn, "SELECT 1 FROM userFavorites WHERE userID = ? AND productID = ? LIMIT 1" ); if ($stmtCheck) { mysqli_stmt_bind_param( $stmtCheck, "ii", $_SESSION['user_id'], $productId ); mysqli_stmt_execute($stmtCheck); mysqli_stmt_store_result($stmtCheck); if (mysqli_stmt_num_rows($stmtCheck) > 0) { $alreadyInWishlist = true; } mysqli_stmt_close($stmtCheck); } } ?> bind_param("i", $productId); $stmtRevOv->execute(); $resultRevOv = $stmtRevOv->get_result(); $reviewOverview = $resultRevOv->fetch_assoc(); // Falls NULL zurückkommt (keine Bewertungen), auf 0 setzen if ($reviewOverview['reviewCount'] === null) { $reviewOverview['reviewCount'] = 0; } ?>
Noch keine Bewertungen vorhanden.
{$row['name']}: "; if (!empty($row['valueString'])) echo htmlspecialchars($row['valueString']); if (!empty($row['valueNumber'])) echo htmlspecialchars($row['valueNumber'] . " " . $row['unit']); if (!is_null($row['valueBool'])) echo $row['valueBool'] ? "Ja" : "Nein"; echo "
"; } ?>Keine Shops bieten dieses Produkt an.
Es gibt noch keine Bewertungen.