2017-05-09 3 views
0

Ich habe eine Suchfunktion auf einer Website, die ich versuche, alle Künstler in einer Datenbank nach dem ersten Buchstaben zurückzugeben. Hier ist der Code, den ich habe:sql Auswählen nach dem ersten Buchstaben funktioniert nicht

$connect = mysqli_connect($host_name, $user_name, $password, $database); 

$arr = array(); 
$keywords = $connect->real_escape_string($_POST["keywords"]); 
$sql = "SELECT * FROM `karaoke` WHERE `artist` LIKE '" . $keywords . "%'"; 
$result = $connect->query($sql) or die($mysqli->error); 
if ($result->num_rows > 0) { 
    while ($obj = $result->fetch_object()) { 
     $arr[] = array("artist" => $obj->artist, "song" => $obj->song); 
    } 
} 
echo json_encode($arr); 

Diese Suche funktioniert gut, wenn das Schlüsselwort 2 oder mehr Buchstaben, aber wenn ich versuche, und nur um einen Buchstaben suchen, bekomme ich kein Ergebnis. Ich habe versucht, mich in die phpMyAdmin-Konsole einzuloggen und die Suche dort zu machen, und es funktioniert gut. Irgendwelche Ideen, warum es die Ergebnisse nicht zu meiner Suche-alpha.php zurückbringen würde?

+0

Fügen Sie diese Zeile 'var_dump ($ sql)' vor dem Ergebnis hinzu und veröffentlichen Sie die Ausgabe! – Hackerman

+0

kannst du '$ sql' aussprechen, um sicherzugehen, dass es korrekt formatiert ist – Derek

+0

Ich habe versucht, $ sql auszugeben, habe es kopiert und es in phpMyAdmin ausgeführt und es hat perfekt funktioniert. –

Antwort

0

Meine Schätzung wäre etwas auf der Formularseite Auffüllen der Eingabezeichenfolge und die Eingabe von 2 oder mehr Zeichen bricht den Schwellenwert. Ich würde die Zeichenfolge jedoch wie in den Kommentaren empfohlen ausgeben.

+0

Ich habe die Kopfzeilen mit dem Chrome-Inspektor überprüft und die Formulardaten sind genau so, wie sie sein sollten. . . –

Verwandte Themen