25 lines
892 B
PHP
25 lines
892 B
PHP
<?php
|
|
// food/merchant/search.php — بحث نصي في اسم المطعم أو أصنافه ضمن مدينة الزبون
|
|
require_once __DIR__ . '/../connect_app.php';
|
|
|
|
$city = filterRequest('city');
|
|
$q = filterRequest('q');
|
|
if (!$city) jsonError('city is required');
|
|
if (!$q || mb_strlen($q) < 2) jsonError('q must be at least 2 characters');
|
|
|
|
$like = '%' . $q . '%';
|
|
|
|
$st = $food_con->prepare(
|
|
"SELECT DISTINCT m.id, m.name_ar, m.name_en, m.logo_url, m.city, m.category,
|
|
m.rating_avg, m.rating_count
|
|
FROM food_merchants m
|
|
LEFT JOIN food_menu_items i ON i.merchant_id = m.id
|
|
WHERE m.city = ? AND m.status='active'
|
|
AND (m.name_ar LIKE ? OR m.name_en LIKE ? OR i.name_ar LIKE ? OR i.name_en LIKE ?)
|
|
ORDER BY m.rating_avg DESC
|
|
LIMIT 50"
|
|
);
|
|
$st->execute([$city, $like, $like, $like, $like]);
|
|
|
|
jsonSuccess(['merchants' => $st->fetchAll()]);
|