diff --git a/productpage.php b/productpage.php index f3f671d..1501ea0 100644 --- a/productpage.php +++ b/productpage.php @@ -238,36 +238,36 @@ $productId = isset($_GET['id']) ? (int)$_GET['id'] : 0; 0) { - $urlColumn = 'productURL'; - } else { - $colCheck2 = mysqli_query($conn, "SHOW COLUMNS FROM offers LIKE 'offerURL'"); - if ($colCheck2 && mysqli_num_rows($colCheck2) > 0) { - $urlColumn = 'offerURL'; - } + // Unterschiedliche DB-Stände: URL-Spalte heißt je nach Schema z.B. productURL oder offerURL. + // Wir ermitteln die existierende Spalte dynamisch, damit die Seite nicht mit "Unknown column" crasht. + $urlColumn = ''; + $colCheck = mysqli_query($conn, "SHOW COLUMNS FROM offers LIKE 'productURL'"); + if ($colCheck && mysqli_num_rows($colCheck) > 0) { + $urlColumn = 'productURL'; + } else { + $colCheck2 = mysqli_query($conn, "SHOW COLUMNS FROM offers LIKE 'offerURL'"); + if ($colCheck2 && mysqli_num_rows($colCheck2) > 0) { + $urlColumn = 'offerURL'; } + } - $urlSelect = $urlColumn !== '' ? ("offers." . $urlColumn . " AS offerURL") : "'' AS offerURL"; + $urlSelect = $urlColumn !== '' ? ("offers." . $urlColumn . " AS offerURL") : "'' AS offerURL"; - $stmt = mysqli_prepare($conn, - "SELECT price, shippingCost, inStock, shops.name, $urlSelect, shops.logoPath, shops.shippingTime + $stmt = mysqli_prepare($conn, + "SELECT price, shippingCost, inStock, shops.name, $urlSelect, shops.logoPath, shops.shippingTime FROM offers INNER JOIN shops ON offers.shopID = shops.shopID WHERE offers.productID = ? ORDER BY offers.price ASC"); - $stmt->bind_param("i", $productId); - $stmt->execute(); - $result = $stmt->get_result(); + $stmt->bind_param("i", $productId); + $stmt->execute(); + $result = $stmt->get_result(); - $shopInfo = []; + $shopInfo = []; - while ($row = $result->fetch_assoc()) { - $shopInfo[] = $row; - } + while ($row = $result->fetch_assoc()) { + $shopInfo[] = $row; + } ?> @@ -319,10 +319,12 @@ $productId = isset($_GET['id']) ? (int)$_GET['id'] : 0; bind_param("i", $productId); $stmt->execute(); @@ -338,146 +340,156 @@ $productId = isset($_GET['id']) ? (int)$_GET['id'] : 0;
-

Bewertungen

-
- +

Bewertungen

+
+ - + -
+
-
-
- -
+
-
- - - + -
- +
+ + +
-
- +
+ +
- -
-

Es gibt noch keine Bewertungen.

- -
-
-

Füge deine Bewertung hinzu!

+ - +
+

Es gibt noch keine Bewertungen.

+
+ +
- // 1. Prüfen, ob der eingeloggte Nutzer schon bewertet hat - if (isset($_SESSION['user_id'])) { - $stmtCheckRev = mysqli_prepare($conn, "SELECT 1 FROM reviews WHERE userID = ? AND productID = ? LIMIT 1"); - mysqli_stmt_bind_param($stmtCheckRev, "ii", $_SESSION['user_id'], $productId); - mysqli_stmt_execute($stmtCheckRev); - mysqli_stmt_store_result($stmtCheckRev); +
+

Füge deine Bewertung hinzu!

- if (mysqli_stmt_num_rows($stmtCheckRev) > 0) { - $userHasReviewed = true; - } - mysqli_stmt_close($stmtCheckRev); + 0) { + $userHasReviewed = true; } + mysqli_stmt_close($stmtCheckRev); + } - // 2. Bewertung speichern (NUR wenn noch keine existiert!) - if ( - $_SERVER['REQUEST_METHOD'] === 'POST' && - isset($_POST['submit_review']) && - isset($_SESSION['user_id']) && - !$userHasReviewed - ) { - $rating = (int)$_POST['rating']; - $comment = trim($_POST['comment']); - $userID = $_SESSION['user_id']; + // 2. Bewertung speichern (NUR wenn noch keine existiert!) + if ( + $_SERVER['REQUEST_METHOD'] === 'POST' && + isset($_POST['submit_review']) && + isset($_SESSION['user_id']) && + !$userHasReviewed + ) { + $rating = (int)$_POST['rating']; + $comment = trim($_POST['comment']); + $userID = $_SESSION['user_id']; - if ($rating >= 1 && $rating <= 5 && !empty($comment)) { + if ($rating >= 1 && $rating <= 5 && !empty($comment)) { - $stmtInsertRev = mysqli_prepare( - $conn, - "INSERT INTO reviews (userID, productID, rating, comment) VALUES (?, ?, ?, ?)" + $stmtInsertRev = mysqli_prepare( + $conn, + "INSERT INTO reviews (userID, productID, rating, comment) VALUES (?, ?, ?, ?)" + ); + + if ($stmtInsertRev) { + mysqli_stmt_bind_param( + $stmtInsertRev, + "iiis", + $userID, + $productId, + $rating, + $comment ); - if ($stmtInsertRev) { - mysqli_stmt_bind_param( - $stmtInsertRev, - "iiis", - $userID, - $productId, - $rating, - $comment - ); + mysqli_stmt_execute($stmtInsertRev); + mysqli_stmt_close($stmtInsertRev); - mysqli_stmt_execute($stmtInsertRev); - mysqli_stmt_close($stmtInsertRev); - - // JS Weiterleitung - echo ""; - exit; - } + // JS Weiterleitung + echo ""; + exit; } } - ?> + } + ?> -
- - +
- - - - - + \ No newline at end of file