SQL Abfrage so überhaupt machbar ?
Hallo,
ich habe eine Frage zu folgender SQL Abfrage:
SELECT * FROM ex_articles WHERE subcategory = 'varSubcategory' OR region = 'varRegion' OR city = 'varCity'
Erreichen will ich folgendes
Auf meiner Website gibt es 3 Selectboxen in einem Formular.
Dieses werden per PHP mit Inhalten aus den jeweilgen Spalten einer MySQL Datenbank gefüllt.
Nun soll man die Möglichkeit haben durch Auswählen von Werten der 3 Selectboxen, die Datensätze zu filtern.
Wichtig ist, dass abhängig gefiltert wird, d.h. egal ob nur in einer Box ein Wert ausgwählt wird, in 2 oder in allen 3.
Leider komme ich mit meiner Abfrage oben nicht sonderlich weit. Einen Wert herauszufiltern ist nicht das Problem. Doch sobald ich einen zweiten Wert auswähle muss das Filterergebnis ja
Beispiel:
Selectbox 1: "Kategorie"
Selectbox 2: "Region"
Selectbox 3: "Ort"
Wenn ich jetzt in der Selectbox "Kategorie" den Wert "Sport" auswähle und in der Selectbox "Region" den Wert "NRW", dann sollen alle Artikel angezeigt werden, die sowohl der Kategorie "Sport" als AUCH in der Region "NRW" stattfinden. Das nicht ausgefüllte Feld "Ort" bleibt von der Filterung unberücksichtigt.
Wenn ich jedoch Werte in allen drei Boxen auswähle, dann müssen auch alle drei Felder in die Filterung eingebunden werden. Beim Filterergebnis müssen alle zwei bzw. drei Bedingungen exakt zutreffen. Die Übereinstimmung eines Wertes in nur einer Spalte reicht nicht aus.
Beispiel:
Wenn als Kategorie "Sport" ausgwählt wird, als Region "Hessen" und als Stadt "Frankfurt", dann darf das Ergebnis nur Werte ausgeben, die ALLEN 3 Bedinungen entsprechen. Ergebnisse die etwa nur beim Wert "Frankfurt" oder nur beim Wert "Hessen" eine Übereinstimmung liefern, müss´ten unberücksichtsigt bleiben.
Geht so etwas überhaupt `?
Hat jemand einen Verbesserungsvorschlag ?
Danke für jeden Tipp !
Grüße !!!
|