Hallo,
ich habe nach wie vor noch nicht die richtige Lösung für mein Suchformular das ich gerade bastel gefunden.
Ich bekomme im moment nach Änderung meiner IF-Anweisung-Verschachtelung einen Fehler, und zwar folgenden:
Warning: Supplied argument is not a valid MySQL result resource in
und weist auf diese Zeile da hin:
=> while($row = mysql_fetch_array($daten)) { ...
Ich möchte, das wenn 2 Wörter nur eingeben sind, aber der Operator 1 im Forumlar nicht gewählt wurde, das er automatisch ein AND wählt bzw. bei 3 Suchbegriffen halt AND und AND setzt ...
Ich gebe mal am besten hier den wichtigsten Code:
//Anfang Suchformular:
<form method="POST" action="index.php4">
<input type=hidden name="session" value="gefunden.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 1 (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>
<br>
Operator 2 (Bitte wählen!): <select name="operator2" size="1">
<option value="">----
<option value="UND">UND
<option value="ODER">ODER
</option>
</select><br><br>
3. Suchbegriff:
<input type="text" name="wort3" size="40" maxlength="490"><br>
<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>
//Ende Suchformular
// Anfang Verarbeitungsscript => wichtigster Teil:
[...]
//wenn nur 1 Wort angeben wurde und Wort 2 und 3 keinen
//Wert enthalten!
if ( isset($wort1) AND ($wort2 == "0") AND ($wort3 == "0") )
{$daten = MYSQL_QUERY( "SELECT * FROM downloadprogramme
WHERE titel LIKE '%$wort1%'
OR beschreibung LIKE '%$wort1%'",$verbindung);}
//wenn nur 2 Wörter angeben wurde und Wort 3 keinen
//Wert enthält!
if ( isset($wort1) AND ($wort2) AND ($wort3 == "0") )
{// 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 (titel LIKE '%$wort2%'
OR beschreibung LIKE '%$wort2%')",$verbindung);}
// Suche für 2 Wörter mit Operator AND
if ($operator1 == ""){
$daten = MYSQL_QUERY("SELECT * FROM downloadprogramme
WHERE (titel LIKE '%$wort1%'
OR beschreibung LIKE '%$wort1%')
AND (titel LIKE '%$wort2%'
OR beschreibung LIKE '%$wort2%')",$verbindung);}
// Suche für 2 Wörter mit Operator OR
if ($operator1 == "ODER"){
$daten = MYSQL_QUERY( "SELECT * FROM downloadprogramme
WHERE (titel LIKE '%$wort1%'
OR beschreibung LIKE '%$wort1%')
OR (titel LIKE '%$wort2%'
OR beschreibung LIKE '%$wort2%')",$verbindung);}
}
//wenn 3 Wörter angeben wurden
if ( isset($wort1) AND ($wort2) AND ($wort3) )
{// Suche für 3 Wörter mit 2x Operator AND
if ($operator1 == "UND" AND $operator2 == "UND"){
$daten = MYSQL_QUERY("SELECT * FROM downloadprogramme
WHERE (titel LIKE '%$wort1%'
OR beschreibung LIKE '%$wort1%')
AND (titel LIKE '%$wort2%'
OR beschreibung LIKE '%$wort2%')
AND (titel LIKE '%$wort3%'
OR beschreibung LIKE '%$wort3%')",$verbindung);}
// Suche für 3 Wörter mit 2x Operator AND
if ($operator1 == "0" AND $operator2 == "0"){
$daten = MYSQL_QUERY("SELECT * FROM downloadprogramme
WHERE (titel LIKE '%$wort1%'
OR beschreibung LIKE '%$wort1%')
AND (titel LIKE '%$wort2%'
OR beschreibung LIKE '%$wort2%')
AND (titel LIKE '%$wort3%'
OR beschreibung LIKE '%$wort3%')",$verbindung);}
// Suche für 3 Wörter mit 1x Operator AND und 1x Operator OR
if ($operator1 == "UND" AND $operator2 == "ODER"){
$daten = MYSQL_QUERY("SELECT * FROM downloadprogramme
WHERE (titel LIKE '%$wort1%'
OR beschreibung LIKE '%$wort1%')
AND (titel LIKE '%$wort2%'
OR beschreibung LIKE '%$wort2%')
OR (titel LIKE '%$wort3%'
OR beschreibung LIKE '%$wort3%')",$verbindung);}
// Suche für 3 Wörter mit 2x Operator OR
if ($operator1 == "ODER" AND $operator2 == "ODER"){
$daten = MYSQL_QUERY( "SELECT * FROM downloadprogramme
WHERE (titel LIKE '%$wort1%'
OR beschreibung LIKE '%$wort1%')
OR (titel LIKE '%$wort2%'
OR beschreibung LIKE '%$wort2%')
OR (titel LIKE '%$wort3%'
OR beschreibung LIKE '%$wort3%')",$verbindung);}
// Suche für 3 Wörter mit 1x Operator OR und 1x Operator AND
if ($operator1 == "ODER" AND $operator2 == "UND"){
$daten = MYSQL_QUERY( "SELECT * FROM downloadprogramme
WHERE (titel LIKE '%$wort1%'
OR beschreibung LIKE '%$wort1%')
OR (titel LIKE '%$wort2%'
OR beschreibung LIKE '%$wort2%')
AND (titel LIKE '%$wort3%'
OR beschreibung LIKE '%$wort3%')",$verbindung);}
}
echo "<div align=center><font color="#ffff00"><h3>Es wurden folgende Einträge gefunden ... </h3></font></div>";
while($row = mysql_fetch_array($daten)) {[...]}
Wer kann mir sagen, was daran falsch ist, bzw. mir einen brauchbaren Tipp geben, wie ich das Problem entgültig beseitigen kann. Über eine Hilfe wäre ich sehr dankbar.
Im voraus besten Dank.
Mfg.
Sascha