Hallo liebe Leute,
ich probiere mal wieder etwas - für mich - neues aus. Ich möchte gerne über ein HTML-Dokument ein Formular ausfüllen, welches beim Auslösen mittels Button ein PHP-Dokument aufruft und mittels einer MySQL-Abfrage entsprechende Datensätze ausgibt. Im Grunde genommen klappt das auch, aber nur dann, wenn ich die Abfragewert "hart" in den SELECT-String hinterlege. Tue ich das nicht, sondern nutze Variablen, die im HTML-Dokument gefüllt werden sollen, kommt eine Fehlermeldung mit folgenden Inhalt.
Fehlermeldung=You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIKE 'Suchanfrage'' at line 1
Scheinbar gibt es ein Problem in MySQL, aber kann es nicht lösen.
MySQL nutze ich wie folgt: Server - MySQL 5.1.37-1ubuntu5.1-log Client - MySQL Client Version 5.0.83
Die Code-Beispiele sind nicht von mir, ich benutze sie nur, um zu verstehen wie das Gesamtwerk funktioniert. Insgesamt klappt es ohne Variablen, aber mit Variablen eben nicht. Scheinbar sind die Variablen nicht gefüllt, aber ich bin mal wieder zu dusselig selbst dieses herauszufinden. Die Variablen-Werte habe ich vorbelegt.
Info: Der Benutzer und das Paßwort sind netraul geändert. In meinem eigenen Script lagere ich die Connect-Infos aus.
Hier der HTML-Code (abfrage.html):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <html> <head><title>Beispieldatenbank Buch</title></head> <body> <h3>Datenbankabfrage</h3> <hr> <form action="abfrage.php" method="post"> <br> Attribut: <input type="text" name="Attribut" size="20" maxlength="20" value="Autor"><br> <br> Suchanfrage: <input type="text" name="Suchanfrage" size="20" maxlength="20" value="Simmel">br> <br> <input type="submit" value="Abfrage"> <input type="reset" value="Zurücksetzen"> </form> <hr> <a href="start.html">Startseite</a><br> </body></html> |
Hier der PHP-Code (abfrage.php):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Beispieldatenbank Buch</title> </head> <body> <h3>Suchergebnis</h3> <hr> <?php $link=mysql_connect("localhost","user","password"); mysql_select_db("test"); $anfrage="SELECT * FROM buch WHERE $Attribut LIKE 'Suchanfrage';"; $ergebnis=mysql_query($anfrage) or die ("Fehlermeldung=".mysql_error()); echo mysql_num_rows($ergebnis)." Datensätze<p> "; echo "<table border='1' width='70%' cellspacing='0' cellpadding='0'>"; for ($i=0;$i<mysql_num_fields($ergebnis);$i++) {echo "<th>".mysql_field_name($ergebnis,$i)."</th>"; }; while ($zeile=mysql_fetch_row($ergebnis)) { echo "<tr>"; for ($i=0;$i<mysql_num_fields($ergebnis);$i++) {echo "<td>".$zeile[$i]."</td>";}; echo "</tr>"; }; echo "</table>"; mysql_free_result($ergebnis); mysql_close($link); ?> <hr> <a href="abfrage.html">Abfrage</a><br> <a href="start.html" >Startseite</a><br> </body> </html> |
Puh, ich hoffe, ich habe alle Angaben gemacht, um ggfs. einen Tipp zu bekommen, warum die Fehlermeldung angezeigt wird, wenn die Suchanfrage mittels Variablen durchgeführt werden soll. Danke im voraus!
Schönen Gruß