updated findCities query

This commit is contained in:
Luca Haid
2025-12-13 11:05:39 +00:00
parent d32b568605
commit 7de8678633
@@ -36,27 +36,24 @@ class PreorderIFrameModel extends mfBaseModel
public function findCities(array $params): array public function findCities(array $params): array
{ {
$whereClause = "p.plzstring = " . $this->db->escape($params['zip']); if (empty($params['gemeindeId']) && empty($params['clusterId'])) return [];
if (!empty($params['gemeindeId'])) {
$whereClause .= " AND g.id = " . intval($params['gemeindeId']);
} elseif (!empty($params['clusterId'])) {
$whereClause .= " AND gn.netzgebiet_id = " . intval($params['clusterId']);
} else {
return []; // No identifier provided
}
$query = " $sql = "SELECT DISTINCT o.name FROM addressdb.Plz p
SELECT DISTINCT o.name JOIN addressdb.Ortschaft o ON p.gemeinde_id = o.gemeinde_id
FROM addressdb.Plz p JOIN addressdb.Gemeinde g ON o.gemeinde_id = g.id
JOIN addressdb.Ortschaft o ON p.gemeinde_id = o.gemeinde_id LEFT JOIN addressdb.GemeindeNetzgebiet gn ON g.id = gn.gemeinde_id
JOIN addressdb.Gemeinde g ON o.gemeinde_id = g.id WHERE p.plzstring = " . $this->db->escape($params['zip']);
LEFT JOIN addressdb.GemeindeNetzgebiet gn ON g.id = gn.gemeinde_id
WHERE $whereClause
ORDER BY o.name ASC
";
$res = $this->db->query($query); $cond = !empty($params['gemeindeId'])
return array_column($this->db->fetch_all_assoc($res), 'name'); ? " AND g.id = " . intval($params['gemeindeId'])
: " AND gn.netzgebiet_id = " . intval($params['clusterId']);
$rows = $this->db->fetch_all_assoc($this->db->query($sql . $cond));
if (empty($rows) && empty($params['gemeindeId']))
$rows = $this->db->fetch_all_assoc($this->db->query($sql));
return array_column($rows, 'name');
} }
public function findStreets(array $params): array public function findStreets(array $params): array