'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] ]);