#1 10. September 2008 MySQL Suche Guten Tag, ich will übern Browser mit Hilfe einer Suchfunktion Datensätze aus der DB anzeigen lassen. Hab mir dafür eine einfache Suchmaske erstellt und den dazugehörigen PHP CODE auch , der leider keine Ergebnisse anzeigt ;> Es gibt nur ein Eingabefeld - Produkt - Danach soll auch die DB suchen und den dazugehörigen Datensatz anzeigen. HTML-Code (Dateiname:suchen.html) Code: <html> <head> <title> Eintrag Suchen </title> </head> <body> <h2> Produkt suchen : </h2> <form action="mysqli-suchen.php" method="post"> <table> <tr><td>Produkt</td><td> <br /><input type="text" name="produkt"/></td></tr> </table> <br /> <input type="submit" value="Suchen" /><br/> </form> </html> PHP-Code (Dateiname:mysqli-suchen.php) Code: <table> <tr><th>#</th><th>Produkt</th><th>Beschreibung</th></tr> <?php if(isset($_POST['submit']) && isset($_POST['produkt']) && $_POST['produkt'] !== '') { try { $db = new MySQLi ('localhost', '$db_user', '$db_pw', '$db_name'); $sql = " SELECT * FROM artikel WHERE MATCH produkt AGAINST ('".$_POST['produkt']." ') "; $ergebnis = $db->query($sql); while ($row = $ergebnis->fetch_object()){ printf('<tr><td>%s</td><td>%s</td><td>%s</td></tr>', $row->id, htmlspecialchars($row->produkt), htmlspecialchars($row->info) ); } } } ?> </table> Da ich keine Ahnung habe wie ich sonst noch vorgehen soll da ich schon ne menge probiert habe würd ich mich über Hilfe von erfahrenen PHP Leuten freuen. MFG + Multi-Zitat Zitieren
#2 10. September 2008 AW: MySQL Suche Wenn du das Feld $_POST['submit'] abfragen willst musst du es auch benennen: <input type="submit" value="Suchen" /><br/> Da fehlt das "name" Attribut. + Multi-Zitat Zitieren
#3 11. September 2008 AW: MySQL Suche ich geh mal davon aus das du keinen benutzer '$db_user' angelegt hast mit dem passwort '$db_pw' mit zugriff auf '$db_name' schau dir mal den unterschied zwischen " und ' an. innerhalb von ' werden variablen nicht geparsed, d.h. du schickst den inhalt so wie er da steht an den constructor von MySQLi ($db_user bleibt $db_user) entweder du lässt die ' weg, oder ersetzt sie durch ". dann solltest du ne verbindung zur datenbank aufbauen können. beispiel: PHP: $foo = 'bar' ;print '$foo' ; //$foo print " $foo " ; //bar print $foo ; //bar aja, du MUSST deine eingaben ($_POST|$_GET) IMMER überprüfen. ließ dir mal den artikel im php-magazin dazu durch, da wird einem verständlich erklärt wie man das macht. vorallem bei nummern kann man deine ganze seite lahmlegen (ddos), deine datenbank übernhemen und deine seite defacen wenn du da nicht acht gibst. ich sag nur benchmark(80000000, md5(1)) + Multi-Zitat Zitieren
#4 12. September 2008 AW: MySQL Suche Hast du so große Datensätze, dass LIKE nicht mehr ausreicht? Wenn du ein paar tausend einträge hast, macht against/match sinn...ansonsten iwie nicht. + Multi-Zitat Zitieren