andreas: or/und Bedingung

Hallo

Habe zwei Checkboxen
Je nach dem welche Checkbox markiert ist erhalte ich,
beim Formular senden ein passende Ergbnis aus der DB.

Dies dient dafür um eine Selektion genauer zu definieren

keine Checkbox erhalte ich alle Angaben
wenn jeweils nur eine Checkbox markiert ist,
erhalte ich auch immer das passende Ergebniss dazu.

Wenn ich beide markiere, erhalte ich nichts obwohl passende Datensätze dafür vorhanden sind.

2 Variablen die übergeben werden
$zeile["farben"] //Inhalt: blau, grün, weiss, schwarz, gelb...
$zeile["zusatz"] //Inhalt: 10120, 12450, 84574, 12548...

2 Checkboxen:
<input type='checkbox' name='sfarben'>
<input type='checkbox' name='szusatz'>

Script:
if($action == "suchen")
{
  $where_counter=0;
 if (isset($sfarben))
 {
  $data=split(",", $zeile["farben"]);
  foreach($data as $value1)
  {
     $value2=ereg_replace(",","",$value1);

if ($where_counter != 0)
    {
    $where .= " or ziel_farben LIKE '%".$value2."%'";
    } else {
    $where .= " where ziel_farben LIKE '%".$value2."%'";

$where_counter++;
    }
   }
  }

das gleiche für $szusatz
  ...

2. Select:
$result  = mysql_query("SELECT * FROM $tabelle ".$where);
...

So wenn ich die Daten einzeln übergeben sieht es wie folgt aus:
$where = ziel_farben LIKE '%blau%' or '%grün%' or '%weiss%' or '%schwarz%' or ...

wenn ich jetzt das or austausche in und dann wie folgt:
$where = ziel_farben LIKE '%blau%' und '%grün%' und '%weiss%' und '%schwarz%' und ...

Das will ich nicht, wie kann ich aber jetzt beide Felder in eine UND Bedingung setzen,
unabhängig von der Umwandlung.

theoretisch

(SELECT * FROM $table ".$where1." and ".$where2);

wer hat das kapiert?
wer hätte eine Idee?

Danke
Andreas

  1. Huhu Andreas

    wer hat das kapiert?

    ich nicht wirklich ...

    wer hätte eine Idee?

    die Ausdrücke Klammern, ungefähr so:

    (f1 = 'a' OR f1 = 'b') AND (f2 = 'gelb' OR f2 = 'rot')

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. Hi

      die Ausdrücke Klammern, ungefähr so:

      (f1 = 'a' OR f1 = 'b') AND (f2 = 'gelb' OR f2 = 'rot')

      das ist doch das gleiche oder

      (SELECT * FROM $table ".$where1." and ".$where2);