first commit
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
// ============================================================
|
||||
// api/search.php
|
||||
// GET ?q=keyword → cari di locations, roads, kavlings
|
||||
// ============================================================
|
||||
require_once __DIR__ . '/config.php';
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
|
||||
http_response_code(405);
|
||||
echo json_encode(['error' => 'Method tidak diizinkan']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$q = trim($_GET['q'] ?? '');
|
||||
if ($q === '') {
|
||||
echo json_encode(['success' => true, 'data' => ['points'=>[],'roads'=>[],'kavlings'=>[]]]);
|
||||
exit;
|
||||
}
|
||||
|
||||
$pdo = getDB();
|
||||
$like = '%' . $q . '%';
|
||||
|
||||
// Points
|
||||
$stmt = $pdo->prepare("SELECT * FROM locations WHERE name LIKE :q OR phone LIKE :q2 ORDER BY name LIMIT 10");
|
||||
$stmt->execute([':q' => $like, ':q2' => $like]);
|
||||
$points = $stmt->fetchAll();
|
||||
foreach ($points as &$r) { $r['lat']=(float)$r['lat']; $r['lng']=(float)$r['lng']; $r['is24h']=(int)$r['is24h']; }
|
||||
|
||||
// Roads
|
||||
$stmt = $pdo->prepare("SELECT id,name,status,length_m,created_at FROM roads WHERE name LIKE :q OR status LIKE :q2 ORDER BY name LIMIT 8");
|
||||
$stmt->execute([':q' => $like, ':q2' => $like]);
|
||||
$roads = $stmt->fetchAll();
|
||||
foreach ($roads as &$r) { $r['length_m']=(int)$r['length_m']; }
|
||||
|
||||
// Kavlings
|
||||
$stmt = $pdo->prepare("SELECT id,name,status,area_m2,created_at FROM kavlings WHERE name LIKE :q OR status LIKE :q2 ORDER BY name LIMIT 8");
|
||||
$stmt->execute([':q' => $like, ':q2' => $like]);
|
||||
$kavlings = $stmt->fetchAll();
|
||||
foreach ($kavlings as &$r) { $r['area_m2']=(int)$r['area_m2']; }
|
||||
|
||||
echo json_encode([
|
||||
'success' => true,
|
||||
'data' => ['points' => $points, 'roads' => $roads, 'kavlings' => $kavlings]
|
||||
]);
|
||||
Reference in New Issue
Block a user