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