From 7de86786334216e92d91eb96aad498d0ae7acaa2 Mon Sep 17 00:00:00 2001 From: Luca Haid Date: Sat, 13 Dec 2025 11:05:39 +0000 Subject: [PATCH] updated findCities query --- .../PreorderIFrame/PreorderIFrameModel.php | 35 +++++++++---------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/application/PreorderIFrame/PreorderIFrameModel.php b/application/PreorderIFrame/PreorderIFrameModel.php index 8b0a6804d..6ae7780c0 100644 --- a/application/PreorderIFrame/PreorderIFrameModel.php +++ b/application/PreorderIFrame/PreorderIFrameModel.php @@ -36,27 +36,24 @@ class PreorderIFrameModel extends mfBaseModel public function findCities(array $params): array { - $whereClause = "p.plzstring = " . $this->db->escape($params['zip']); - 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 - } + if (empty($params['gemeindeId']) && empty($params['clusterId'])) return []; - $query = " - SELECT DISTINCT o.name - FROM addressdb.Plz p - JOIN addressdb.Ortschaft o ON p.gemeinde_id = o.gemeinde_id - JOIN addressdb.Gemeinde g ON o.gemeinde_id = g.id - LEFT JOIN addressdb.GemeindeNetzgebiet gn ON g.id = gn.gemeinde_id - WHERE $whereClause - ORDER BY o.name ASC - "; + $sql = "SELECT DISTINCT o.name FROM addressdb.Plz p + JOIN addressdb.Ortschaft o ON p.gemeinde_id = o.gemeinde_id + JOIN addressdb.Gemeinde g ON o.gemeinde_id = g.id + LEFT JOIN addressdb.GemeindeNetzgebiet gn ON g.id = gn.gemeinde_id + WHERE p.plzstring = " . $this->db->escape($params['zip']); - $res = $this->db->query($query); - return array_column($this->db->fetch_all_assoc($res), 'name'); + $cond = !empty($params['gemeindeId']) + ? " 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