Hallo!
Seit gestern, versuche ich ein Suchformular zu bauen, wo ich einen Wert eingebe und dann ein Feld im meiner Mysql Datenbank durchsucht werden soll. Ich habe eine Listenfeld = Spalte in der Datenbank und ein Textfeld = Wert der in der Spalte, der teilweise vorhanden ist. Das Formular habe ich. Bei form action wird auf die seite wo der SQL string eingebaut ist verlinkt. Mein SQL String in der Ergebnisseite:
$Suchf = $HTTP_POST_VARS["Suchfeld"];
$Suchw = $HTTP_POST_VARS["Suchwort"];
$query = "SELECT * FROM TYPSCH WHERE $Suchf LIKE '%$Suchw%'";
$result = mysql_query($query);
Das funktioniert aber nicht. Er sucht ewige Zeiten min. 3 Minuten um dann kein Ergebniss zu haben. Ich weiss aber, dass es diesen Wert in der DB gibt. Ich muss dazu sagen das ca. 80000 Datensätze in der DB vorhanden sind. Und es 200 Spalten gibt. Sollte aber kein Problem sein, oder?
Hier die Verarbeitung vom Ergebniss:
<H1>Suchergebnis</H1>
<? $num = mysql_Num_Rows($result);
if ( $num != 0 ):
?>
<TABLE BORDER>
<TR>
<TH>ZFA</TH>
<TH>TYPSCHNR</TH>
<TH>VERSION</TH>
<TH>BEZEICHNUNG</TH>
<TH>RECHNUNGSDATUM</TH>
</TR>
<? $i=0;
while ($i<$num):
echo "<TR><TD>" . mysql_result($result,$i,"Feld19") . "</TD>";
echo "<TD>" . mysql_result($result,$i,"Feld18") . "</TD>";
echo "<TD>" . mysql_result($result,$i,"Feld20") . "</TD>";
echo "<TD>" . mysql_result($result,$i,"Feld9") . "</TD>";
echo "<TD>" . mysql_result($result,$i,"Feld166") . "</TD></TR>";
$i++;
endwhile;
?>
</TABLE><P>
<? else: ?> Es wurden keine auf die Abfrage passenden Datensätze gefunden.
<? endif; ?>
Wo mache ich einen Fehler? Mit echo habe ich mir angesehen ob die Werte auch vom Suchformular übertragen werden. Das funktioniert!
Danke für jeden Hinweis.
LG
Judith