37 lines
1.4 KiB
PHP
37 lines
1.4 KiB
PHP
<?php
|
|
require_once 'db/config.php';
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
$restaurant_id = $_POST['restaurant_id'] ?? null;
|
|
$new_rating = $_POST['rating'] ?? null;
|
|
|
|
if ($restaurant_id && $new_rating) {
|
|
try {
|
|
$pdo = db();
|
|
|
|
// Get current rating and count
|
|
$stmt = $pdo->prepare("SELECT rating, rating_count FROM restaurants WHERE id = ?");
|
|
$stmt->execute([$restaurant_id]);
|
|
$restaurant = $stmt->fetch(PDO::FETCH_ASSOC);
|
|
|
|
if ($restaurant) {
|
|
$current_total_rating = $restaurant['rating'] * $restaurant['rating_count'];
|
|
$new_total_rating = $current_total_rating + $new_rating;
|
|
$new_rating_count = $restaurant['rating_count'] + 1;
|
|
$new_average_rating = $new_total_rating / $new_rating_count;
|
|
|
|
// Update restaurant with new rating
|
|
$update_stmt = $pdo->prepare("UPDATE restaurants SET rating = ?, rating_count = ? WHERE id = ?");
|
|
$update_stmt->execute([$new_average_rating, $new_rating_count, $restaurant_id]);
|
|
}
|
|
} catch (PDOException $e) {
|
|
// Log error, but don't show to user
|
|
error_log("Rating update failed: " . $e->getMessage());
|
|
}
|
|
}
|
|
}
|
|
|
|
// Redirect back to the menu page
|
|
header('Location: menu.php?id=' . $restaurant_id);
|
|
exit;
|
|
?>
|