Selektive Abfrage aus Formularfeldern bei MySQL Datenbank

preko

Erfahrenes Mitglied
Hi,

ich habe folgendes Problem:

es existieren 3 Auswahlmenüs, z. B.:

Menü 1:
1a
1b
1c

Menü 2:
2a
2b
2c

Menü 3:
3a
3b
3c

Nun soll, je nach Auswahl der Dropdownmenüs eine Abfrage aus einer MySQL Datenbank erfolgen, wo als Abfragebedingung die jeweiligen Menüeinträge berücksichtigt werden.

PHP:
$sql_query = "SELECT
                                 *
                     FROM
                                 `menueabfrage`
                     WHERE
                                 `menue_1` = '".$_POST['menue_1_eintrag']."';
                     AND
                                 `menue_2` = '".$_POST['menue_2_eintrag']."';
                     AND
                                 `menue_3` = '".$_POST['menue_3_eintrag']."';
                     AND
                                 `status` = '1'
                     ORDER BY
                                 `date` ASC
                     ";

Was nun, wenn nur ein oder zwei Menüs angewählt werden und die anderen nicht, was durchaus vorkommen kann? Wie gehe ich am besten vor?


Beste Grüße,
preko
 
Hi Gumbo,

soweit klar, nur wie?

Ich prüfe zuerst die Existenz der einzelnen Werte, aber wie ordne ich die Abfrage an aufgrund der Existenz von z. B. "nur" zwei Menüeinträgen?

Kann ich innerhalb einer SELECT Abfrage IF-Schleifen verwenden?


Beste Grüße,
preko
 
Probier mal folgenden Trick:
PHP:
<?php

	$query = '
		SELECT
		        *
		  FROM
		        `menueabfrage`
		  WHERE
		        `status` = 1
		';
	if( !empty($_POST['menue_1_eintrag']) ) {
		$query .= ' AND `menue_1` = "'.mysql_real_escape_string($_POST['menue_1_eintrag']).'" ';
	}
	if( !empty($_POST['menue_2_eintrag']) ) {
		$query .= ' AND `menue_2` = "'.mysql_real_escape_string($_POST['menue_2_eintrag']).'" ';
	}
	if( !empty($_POST['menue_3_eintrag']) ) {
		$query .= ' AND `menue_3` = "'.mysql_real_escape_string($_POST['menue_3_eintrag']).'" ';
	}
	$query .= ' ORDER BY `date` ASC';

?>
 
Zurück