Sascha: Was falsch an AND bzw. OR Suchabfrage /-formular?

Beitrag lesen

Hallo,

ich will unter MySQL per PHP-Script eine Suchfunktion einbauen, und zwar mit folgenden Bedingungen:

  • 1 Suchbegriff alleine
  • 2 Suchbegriffe mit Operator AND
  • 2 Suchbegriffe mit Operator OR

Dazu ist folgendes noch anzumerken:
Es soll pro Wort in 2 Feldern / Spalten gesucht werden, und zwar in titel und beschreibung.

Hierzu habe ich folgende Scripte geschrieben:

Inhalt von Suchformularseite:

<?php
require("config-softdatabase.php4");

echo "<h1><font color="#FFFF00" face="Arial">Suchen</font></h1>
<form method="POST" action="index.php4">
<input type=hidden name="session" value="gefunden_mich.php4">
    <p><font face="Arial" color="#FFFF00" size="2">Nach welchem Begriff soll gesucht werden?<br><br>
1. Suchbegriff:  
<input type="text" name="wort1" size="40" maxlength="490"><br>
<br>
Operator (Bitte wählen!):   <select name="operator1" size="1">
    <option value="">----
    <option value="UND">UND
    <option value="ODER">ODER
   </option>
  </select><br><br>
2. Suchbegriff:  
<input type="text" name="wort2" size="40" maxlength="490"><br>
  <p><font face="Arial" size="2"><input type="submit" value="Abschicken" name="B1"><input type="reset" value="Zurücksetzen" name="B2"></font></p>
</form>
";
?>

Inhalt von Verarbeitungsscript:

[....]

// Suche für 1 Wort ohne AND bzw. OR
if ($operator1 == "" AND $wort2 == ""){
$daten = MYSQL_QUERY( "SELECT * FROM downloadprogramme WHERE titel LIKE '%$wort1%' OR beschreibung LIKE '%$wort1%'",$verbindung);
}

// Suche für 2 Wörter mit Operator AND
if ($operator1 == "UND"){
$daten = MYSQL_QUERY( "SELECT * FROM downloadprogramme WHERE titel LIKE '%$wort1%' OR beschreibung LIKE '%$wort1%' AND LIKE '%$wort2%' OR beschreibung LIKE '%$wort2%'",$verbindung);
}

// Suche für 2 Wörter mit Operator AND
if ($operator1 == "ODER"){
$daten = MYSQL_QUERY( "SELECT * FROM downloadprogramme WHERE titel LIKE '%$wort1%'OR beschreibung LIKE '%$wort1%'OR LIKE '%$wort2%' OR beschreibung LIKE '%$wort2%'",$verbindung);
}

//$a= fetch_result($datencounter);
//echo "<div align=center><font color="#ffff00"><h3>Es wurden $a //Einträge gefunden ... </h3></font></div>";

while($row = mysql_fetch_array($daten)) { [....]

=> Ergebnis:

Eingabe von 1 Suchbegriff im Formularfeld für 1. Wort
=> funktioniert bestens und fehlerfrei

Eingabe von 2 Suchbegriffen im Formularfeld für 1. Wort und 2. Wort (je 1 Wort/Feld) mit Operatorauswahl AND (UND) bzw. OR (ODER)
führt zu einem Fehler!
=> Warning: Supplied argument is not a valid MySQL result resource in ... [zeigt auf while($row.... ]

Kann mir jemand sagen was ich falsch gemacht habe, bzw. einen Tipp zur Problemlösung nennen? Im voraus besten Dank.

Mfg.

Sascha