Also ich habe eine MySQL Datenbank die Informationen enthält.
nun hab ich folgendes Formular;
.... solll heißen, dass ich unwichtige infos weggelassen hab.
das ist nun nen formular mit textfeld namens "search" und einem Kontrollkästchen namens control mit value name.
die datei searchrequest an die die variablen $search und $control geschickt werden sieht folgender maßen aus:
ich hab beim ersten formular natürlich noch mehr kontrollkästchen, die tun aber nix zur sache. das value der kästchen hab ich immer so gewählt, wie die einzelnen spalten in der datenbanktabelle heißen. $control ist in diesem fall "name" und si heißt auch eine spalte in meiner tabelle.
im mysql_query ergibt sich dann folgende WHERE definition, da $control = name ist:
WHERE name=$search und $search ist der text aus dem textfeld.
die ausgabe der suergebnisse sieht wie folgt aus:
die letzten beiden printbefehle dienen nur zur controlle.....
ich habe verschiedene datensätze zu testzwecken in meiner datenbank, unteranderem eine mit dem name Test, eine mit dem Namen 1234 und eine mit 123 4.
wenn ich jetzt in mein textfeld von formular "Test" eingebe kommt folgende fehlermeldung:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\archiv\privat\webdesign\hps\pph\verzeichnis\searchrequest.php on line 33
die letzten beiden printbefehle die zur kontrolle dienen zeigen aber die richtigen werte an nämlich "name" und "Test"
gebe ich ins textfeld "1234" ein, findet er einen Datensatz und gibt ihn wie gewünscht aus.
Gebe ich aber "123 4" ein, gibt es den gleichen fehler wie oben.
die datensätze Test und 123 4 gibt es aber.
Es sieht so aus, als ob er nicht nach Buchstaben suchen kann, sondern nur nach Zahlen. kann das sein.
kann mir da jemand helfen?????
Vielen Dank
HämZli
nun hab ich folgendes Formular;
Code:
<form name="suchanfrage" method="post" action="searchrequest.php"> ...... <input type="text" name="search" maxlength="255" size="30"> ...... <input type="radio" name="control" value="name"> ...... <input type="submit" name="eintragen" value="Suchen">
das ist nun nen formular mit textfeld namens "search" und einem Kontrollkästchen namens control mit value name.
die datei searchrequest an die die variablen $search und $control geschickt werden sieht folgender maßen aus:
Code:
<?php include ("config.php"); if($search == '') { $text_search = "Bitte geben Sie einen Suchbegriff ein!<br>\n"; include("eintragfehler.php"); } else { $link = mysql_connect($db_host, $db_user, $db_password); if ( ! $link ) die ( "Keine Verbindung zu MySQL-Server"); mysql_select_db($db_name, $link) or die ( "Konnte $db_name nicht öffnen: ".mysql_error() ); $anfrage = mysql_query( "SELECT * FROM $db_table_daten WHERE $control=$search" ); $ausgabe = mysql_num_rows( $anfrage ); mysql_close( $link ); };
im mysql_query ergibt sich dann folgende WHERE definition, da $control = name ist:
WHERE name=$search und $search ist der text aus dem textfeld.
die ausgabe der suergebnisse sieht wie folgt aus:
Code:
print "<table width=570 border=0 cellspacing=0 cellpadding=0 align=center>\n"; while ( $datensatz = mysql_fetch_array( $anfrage ) ) { if($datensatz[logo] == '') { $logoausgabe = " "; } else { $logoausgabe = "<img src=$datei_url/$datensatz[logo]>"; }; print "<tr>\n"; print "<td width=420 height=15 class=info_ueberschrift> <a href=ausgabe.php?action=$datensatz[id]>$datensatz[name]</a></td>\n"; print "<td rowspan=4 width=150 height=150 align=center valign=top class=allgemein_text>$logoausgabe</td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td width=420 height=90 class=verzeichnis_contentmitte valign=top><br>$datensatz[infobeschreibung]</td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td width=420 height=15 class=verzeichnis_contentmitte valign=top>\n"; print "<div align=right>--> weitere Infos <a href=ausgabe.php?action=$datensatz[id]>HIER</a> oder unter: <a href=http://$datensatz[url]>$datensatz[url]</a></div>\n"; print "</td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td width=420 height=15 class=verzeichnis_content>Bewertung</td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td width=420><font color=#CCCCFF>$datensatz[id]</font></td>\n"; print "<td width=150 align=center valign=top class=allgemein_text> </td>\n"; print "</tr>\n"; } print "</table>\n"; print "$control<br>"; print "$search";
ich habe verschiedene datensätze zu testzwecken in meiner datenbank, unteranderem eine mit dem name Test, eine mit dem Namen 1234 und eine mit 123 4.
wenn ich jetzt in mein textfeld von formular "Test" eingebe kommt folgende fehlermeldung:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\archiv\privat\webdesign\hps\pph\verzeichnis\searchrequest.php on line 33
die letzten beiden printbefehle die zur kontrolle dienen zeigen aber die richtigen werte an nämlich "name" und "Test"
gebe ich ins textfeld "1234" ein, findet er einen Datensatz und gibt ihn wie gewünscht aus.
Gebe ich aber "123 4" ein, gibt es den gleichen fehler wie oben.
die datensätze Test und 123 4 gibt es aber.
Es sieht so aus, als ob er nicht nach Buchstaben suchen kann, sondern nur nach Zahlen. kann das sein.
kann mir da jemand helfen?????
Vielen Dank
HämZli
Kommentar