prepare(" SELECT r.id, r.name, r.image_url, AVG(rt.rating) as average_rating, (6371 * acos(cos(radians(?)) * cos(radians(latitude)) * cos(radians(longitude) - radians(?)) + sin(radians(?)) * sin(radians(latitude)))) AS distance FROM restaurants r LEFT JOIN ratings rt ON r.id = rt.restaurant_id WHERE latitude IS NOT NULL AND longitude IS NOT NULL GROUP BY r.id HAVING distance < ? ORDER BY distance LIMIT 12 "); $stmt->execute([$lat, $lng, $lat, $radius]); $restaurants = $stmt->fetchAll(PDO::FETCH_ASSOC); // Get cuisines for each restaurant $cuisine_sql = "SELECT c.name FROM cuisines c JOIN restaurant_cuisines rc ON c.id = rc.cuisine_id WHERE rc.restaurant_id = ?"; $cuisine_stmt = $db->prepare($cuisine_sql); foreach ($restaurants as &$restaurant) { $cuisine_stmt->execute([$restaurant['id']]); $restaurant['cuisines'] = $cuisine_stmt->fetchAll(PDO::FETCH_COLUMN); } echo json_encode($restaurants); exit; } ?>

$0 Delivery Fee

On your first order

Earn Rewards

With every meal

Support Local

Majuro Restaurants

query(" SELECT r.id, r.name, r.image_url, GROUP_CONCAT(c.name SEPARATOR ', ') as cuisines, AVG(rt.rating) as average_rating FROM restaurants r LEFT JOIN restaurant_cuisines rc ON r.id = rc.restaurant_id LEFT JOIN cuisines c ON rc.cuisine_id = c.id LEFT JOIN ratings rt ON r.id = rt.restaurant_id GROUP BY r.id ORDER BY average_rating DESC LIMIT 4 "); $top_restaurants = $top_restaurants_stmt->fetchAll(PDO::FETCH_ASSOC); // Fetch Featured Cuisines $featured_cuisines_stmt = $db->query(" SELECT c.id, c.name, c.image_url FROM cuisines c JOIN ( SELECT cuisine_id, COUNT(*) as restaurant_count FROM restaurant_cuisines GROUP BY cuisine_id ORDER BY restaurant_count DESC LIMIT 4 ) as popular_cuisines ON c.id = popular_cuisines.cuisine_id "); $featured_cuisines = $featured_cuisines_stmt->fetchAll(PDO::FETCH_ASSOC); ?>

Top-rated restaurants