This commit is contained in:
2026-01-02 01:34:24 +01:00
parent bd13e66e18
commit d5ffe4faee

View File

@@ -27,12 +27,12 @@ final class Search
$tok = trim($tok); $tok = trim($tok);
if ($tok === '') continue; if ($tok === '') continue;
$conditions[] = "(title LIKE :t{$i}a OR teaser_public LIKE :t{$i}b OR description LIKE :t{$i}c OR city LIKE :t{$i}d OR region LIKE :t{$i}e OR zip LIKE :t{$i}f)"; $conditions[] = "(title LIKE :t{$i}a OR teaser_public LIKE :t{$i}b OR description LIKE :t{$i}c OR city LIKE :t{$i}d OR region LIKE :t{$i}e OR zip LIKE :t{$i}f)";
$bind[":t{$i}a"] = '%' . $tok . '%'; $bind["t{$i}a"] = '%' . $tok . '%';
$bind[":t{$i}b"] = '%' . $tok . '%'; $bind["t{$i}b"] = '%' . $tok . '%';
$bind[":t{$i}c"] = '%' . $tok . '%'; $bind["t{$i}c"] = '%' . $tok . '%';
$bind[":t{$i}d"] = '%' . $tok . '%'; $bind["t{$i}d"] = '%' . $tok . '%';
$bind[":t{$i}e"] = '%' . $tok . '%'; $bind["t{$i}e"] = '%' . $tok . '%';
$bind[":t{$i}f"] = '%' . $tok . '%'; $bind["t{$i}f"] = '%' . $tok . '%';
$i++; $i++;
} }
@@ -63,13 +63,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)";
$bind[':glat'] = $lat; $bind['glat'] = $lat;
$bind[':glng'] = $lng; $bind['glng'] = $lng;
$bind[':latMin'] = $lat - $latRange; $bind['latMin'] = $lat - $latRange;
$bind[':latMax'] = $lat + $latRange; $bind['latMax'] = $lat + $latRange;
$bind[':lngMin'] = $lng - $lngRange; $bind['lngMin'] = $lng - $lngRange;
$bind[':lngMax'] = $lng + $lngRange; $bind['lngMax'] = $lng + $lngRange;
$bind[':radius'] = $radius; $bind['radius'] = $radius;
} }
$where = $whereParts ? ('WHERE ' . implode(' AND ', $whereParts)) : ''; $where = $whereParts ? ('WHERE ' . implode(' AND ', $whereParts)) : '';
@@ -81,11 +81,11 @@ final class Search
$sql .= " ORDER BY starts_at ASC"; $sql .= " ORDER BY starts_at ASC";
} }
$sql .= " LIMIT :lim"; $sql .= " LIMIT :lim";
$bind[':lim'] = (int)$limit; $bind['lim'] = (int)$limit;
$stmt = $this->pdo->prepare($sql); $stmt = $this->pdo->prepare($sql);
foreach ($bind as $name => $value) { foreach ($bind as $name => $value) {
echo $paramName = $name[0] === ':' ? $name : ':' . $name; $paramName = ':' . ltrim($name, ':');
$type = is_int($value) ? \PDO::PARAM_INT : \PDO::PARAM_STR; $type = is_int($value) ? \PDO::PARAM_INT : \PDO::PARAM_STR;
$stmt->bindValue($paramName, $value, $type); $stmt->bindValue($paramName, $value, $type);
} }