Struppi: verzwicktes SQL-Statement

Beitrag lesen

Als erste Wert in jedem Menü ist "alle" ausgewählt. Wenn jetzt in jedem Dropdown-Menü ein anderer Wert als "alle" ausgewählt wird ist die sql abfrage kein Problem:

SELECT farbe, gruppe, komponente FROM Tabellen_name WHERE farbe=$farbe AND gruppe=$gruppe AND komponente=$komponente ORDER BY farbe ASC

Jetzt kommt das aber. Wenn in einem Dropdown-Menü kein anderer Wert ausgewählt wurde als "alle", muss ich dann mit if und else alle Möglichkeiten mit einem eigenen SQL-Statement abdecken oder kann ich das in einem machen?

Was ist daran verzwickt?
einfach die Bedingung weglassen.

Ich kann nur Perl, da würd ich es ungefähr so machen:

  
my @bedingungen = ();  
push @bedingungen, 'farbe=' . $DBH->quote( $farbe) if $farbe;  
push @bedingungen, 'gruppe=' . $DBH->quote( $gruppe) if $gruppe;  
push @bedingungen, 'komponente=' . $DBH->quote( $komponente  ) if $komponente ;  
  
my where = join ' AND ', @bedingungen;  
my $sth = $DBH->prepare( "SELECT farbe, gruppe, komponente FROM Tabellen_name WHERE $where ORDER BY farbe ASC");  

@bedingungen ist ein Array und  join heißt in PHP glaub ich implode.

Struppi.

--
Javascript ist toll (Perl auch!)