This commit is contained in:
2025-12-31 02:08:46 +01:00
parent ac6d4a019a
commit 1fb68499f3

View File

@@ -27,14 +27,14 @@ final class Search
$tok = trim($tok); $tok = trim($tok);
if ($tok === '') continue; if ($tok === '') continue;
$ph = [ $ph = [
':t' . $i . 'a', 't' . $i . 'a',
':t' . $i . 'b', 't' . $i . 'b',
':t' . $i . 'c', 't' . $i . 'c',
':t' . $i . 'd', 't' . $i . 'd',
':t' . $i . 'e', 't' . $i . 'e',
':t' . $i . 'f', 't' . $i . 'f',
]; ];
$conditions[] = "(title LIKE {$ph[0]} OR teaser_public LIKE {$ph[1]} OR description LIKE {$ph[2]} OR city LIKE {$ph[3]} OR region LIKE {$ph[4]} OR zip LIKE {$ph[5]})"; $conditions[] = "(title LIKE :{$ph[0]} OR teaser_public LIKE :{$ph[1]} OR description LIKE :{$ph[2]} OR city LIKE :{$ph[3]} OR region LIKE :{$ph[4]} OR zip LIKE :{$ph[5]})";
foreach ($ph as $p) { foreach ($ph as $p) {
$params[$p] = '%' . $tok . '%'; $params[$p] = '%' . $tok . '%';
} }
@@ -67,13 +67,13 @@ final class Search
$whereParts[] = "(lat IS NOT NULL AND lng IS NOT NULL)"; $whereParts[] = "(lat IS NOT NULL AND lng IS NOT NULL)";
$whereParts[] = "(lat BETWEEN :latMin AND :latMax)"; $whereParts[] = "(lat BETWEEN :latMin AND :latMax)";
$whereParts[] = "(lng BETWEEN :lngMin AND :lngMax)"; $whereParts[] = "(lng BETWEEN :lngMin AND :lngMax)";
$params[':glat'] = $lat; $params['glat'] = $lat;
$params[':glng'] = $lng; $params['glng'] = $lng;
$params[':latMin'] = $lat - $latRange; $params['latMin'] = $lat - $latRange;
$params[':latMax'] = $lat + $latRange; $params['latMax'] = $lat + $latRange;
$params[':lngMin'] = $lng - $lngRange; $params['lngMin'] = $lng - $lngRange;
$params[':lngMax'] = $lng + $lngRange; $params['lngMax'] = $lng + $lngRange;
$params[':radius'] = $radius; $params['radius'] = $radius;
} }
$where = $whereParts ? ('WHERE ' . implode(' AND ', $whereParts)) : ''; $where = $whereParts ? ('WHERE ' . implode(' AND ', $whereParts)) : '';
@@ -87,7 +87,7 @@ final class Search
$sql .= " LIMIT :lim"; $sql .= " LIMIT :lim";
$stmt = $this->pdo->prepare($sql); $stmt = $this->pdo->prepare($sql);
$params[':lim'] = $limit; $params['lim'] = $limit;
$stmt->execute($params); $stmt->execute($params);
return $stmt->fetchAll(\PDO::FETCH_ASSOC) ?: []; return $stmt->fetchAll(\PDO::FETCH_ASSOC) ?: [];
} }