chr!s: Lange IF-Schleife :-(

Beitrag lesen

Guten Tag

Ich habe ein Veranstaltungskalender programmiert. Mittels Pulldownmenues (<select>) können Suchkriterien eingegeben werden wonach sich die MYSQL-Abfrage (SELECT) richtet. Insgesamt stehen drei Menues zur Verfügung. 1. Datum, 2. Veranstaltungstyp, 3. Ort. Wird nichts ausgewählt werden alle Daten angezeigt. Nun gibt es da so einige Kombinationsmöglichkeiten wie z.B. nur Datum ausgewählt, Datum und Ort ausgewählt, Datum, Veranstaltungstyp und Ort ausgewählt etc. In einer langen IF-Schleife habe ich alle Fälle erfasst die auftreten können (hoffe es zumindest). Irgendwie scheint mir diese Lösung aber etwas umfangreich. Gäbe es nicht eine einfachere (intelligentere) Variante für die Datenbankabfrage ohne dass das Programm einen so lange Schleife durchlaufen muss?

Hier der relevante Code:

// Datenbankabfrage
if (empty($veranstaltungstyp)) {
if (empty($datum)) {
if (empty($loc)) {
$query = "select ... from ... where ... order by ..."
}
}
}
if (!empty($veranstaltungstyp)) {
if (empty($datum)) {
if (empty($loc)) {
$query = "select ... from ... where ... order by ..."
}
}
}
if (empty($veranstaltungstyp)) {
if (!empty($datum)) {
if (empty($loc)) {
$query = "select ... from ... where ... order by ..."
}
}
}
if (empty($veranstaltungstyp)) {
if (empty($datum)) {
if (!empty($loc)) {
$query = "select ... from ... where ... order by ..."
}
}
}
if (!empty($veranstaltungstyp)) {
if (!empty($datum)) {
if (empty($loc)) {
$query = "select ... from ... where ... order by ..."
}
}
}
if (!empty($veranstaltungstyp)) {
if (empty($datum)) {
if (!empty($loc)) {
$query = "select ... from ... where ... order by ..."
}
}
}
if (empty($veranstaltungstyp)) {
if (!empty($datum)) {
if (!empty($loc)) {
$query = "select ... from ... where ... order by ..."
}
}
}
if (!empty($veranstaltungstyp)) {
if (!empty($datum)) {
if (!empty($loc)) {
$query = "select ... from ... where ... order by ..."
}
}
}