dsfdsf
This commit is contained in:
@@ -21,18 +21,18 @@ final class Search
|
||||
}
|
||||
|
||||
$conditions = [];
|
||||
$bind = [];
|
||||
$bindTokens = [];
|
||||
$i = 0;
|
||||
foreach ($tokens as $tok) {
|
||||
$tok = trim($tok);
|
||||
if ($tok === '') continue;
|
||||
$conditions[] = "(title LIKE CONCAT('%', ?, '%') OR teaser_public LIKE CONCAT('%', ?, '%') OR description LIKE CONCAT('%', ?, '%') OR city LIKE CONCAT('%', ?, '%') OR region LIKE CONCAT('%', ?, '%') OR zip LIKE CONCAT('%', ?, '%'))";
|
||||
$bind[] = $tok;
|
||||
$bind[] = $tok;
|
||||
$bind[] = $tok;
|
||||
$bind[] = $tok;
|
||||
$bind[] = $tok;
|
||||
$bind[] = $tok;
|
||||
$bindTokens[] = $tok;
|
||||
$bindTokens[] = $tok;
|
||||
$bindTokens[] = $tok;
|
||||
$bindTokens[] = $tok;
|
||||
$bindTokens[] = $tok;
|
||||
$bindTokens[] = $tok;
|
||||
$i++;
|
||||
}
|
||||
|
||||
@@ -45,6 +45,7 @@ final class Search
|
||||
}
|
||||
|
||||
$distanceFiltering = false;
|
||||
$bind = [];
|
||||
if ($hasGeo) {
|
||||
$sql = "SELECT id, title, teaser_public, description, city, region, zip, starts_at, visibility, allow_kids, location_label, lat, lng,
|
||||
(6371 * ACOS(LEAST(1,
|
||||
@@ -61,10 +62,12 @@ final class Search
|
||||
$whereParts[] = "(lat IS NOT NULL AND lng IS NOT NULL)";
|
||||
$whereParts[] = "(lat BETWEEN ? AND ?)";
|
||||
$whereParts[] = "(lng BETWEEN ? AND ?)";
|
||||
// Haversine params (order must match SQL)
|
||||
// Haversine params (order must match SQL): first three
|
||||
$bind[] = $lat; // COS(RADIANS(?))
|
||||
$bind[] = $lng; // COS(RADIANS(lng) - RADIANS(?))
|
||||
$bind[] = $lat; // SIN(RADIANS(?))
|
||||
// THEN token binds
|
||||
$bind = array_merge($bind, $bindTokens);
|
||||
// Bounding box
|
||||
$bind[] = $lat - $latRange;
|
||||
$bind[] = $lat + $latRange;
|
||||
@@ -73,7 +76,8 @@ final class Search
|
||||
// Radius for HAVING
|
||||
$bind[] = $radius;
|
||||
} else {
|
||||
$sql = "SELECT id, title, teaser_public, description, city, region, zip, starts_at, visibility, allow_kids, location_label, lat, lng, 5 AS distance_km";
|
||||
$sql = "SELECT id, title, teaser_public, description, city, region, zip, starts_at, visibility, allow_kids, location_label, lat, lng, 30 AS distance_km";
|
||||
$bind = $bindTokens;
|
||||
}
|
||||
|
||||
$where = $whereParts ? ('WHERE ' . implode(' AND ', $whereParts)) : '';
|
||||
|
||||
Reference in New Issue
Block a user