Dies ist das erste Mal erstellen eine Suchleiste. Die Suchleiste befindet sich auf der Index-/Startseite und verarbeitet die britischen Postleitzahlen für einen Online-Lebensmittellieferdienst. Die Idee der Suchleiste besteht darin, zu sehen, welche Restaurants an die Benutzeradresse liefern. Die Suchleiste leitet die Benutzer erfolgreich zur Menüauswahlseite um. Dies ist jedoch der Punkt, an dem mein Problem beginnt.PHP/MYSQLI: INNER JOIN Suchleiste Abfrage Probleme
Silly mich, hatte bereits eine dynamische Menüauswahlseite erstellt, so dass der Moment, in dem ein neues Restaurant im Admin-Panel erstellt wird, automatisch auf dieser Seite angezeigt wird. Es funktioniert bis auf weiteres erfolgreich, es zeigt alle Restaurants in der DB, egal in welcher Gegend oder Postleitzahl.
Da dies die Seite ist, auf die der Benutzer beim Suchen seiner Postleitzahl verwiesen wird, versuche ich jetzt, meine dynamische Menüauswahlseite mit der Suchleistenabfrage zu kombinieren, also zum Beispiel wenn der Benutzer in E14 ABU alle Restaurants eintippt In E14 wird auf dieser Seite angezeigt. Klingt geradeaus, aber weil die Restaurantdetails, die in der Restaurantmenü-Seite aufgerufen werden, in einer Tabelle sind und die Postleitzahlen in einer anderen, habe ich ein INNER JOIN benutzt, um beide zu verbinden. Aber die Abfrage funktioniert nicht.
Ich weiß, dass die Abfrage funktioniert, wie es zum Drucken der dynamischen Menüauswahlseite verwendet wurde. Meine Abfrage druckt mein oder stirbt von "konnte nicht suchen!". Ich habe
var_dump($sql)
und
if (!$sql) {
die('Invalid query: ' . mysql_error());
}
druckt aber nicht verwendet, was verwirrend ist. Nur eine leere weiße Seite.
-Code
output='';
//return to home page if not entered via search
if(isset($_POST['search'])){
$searchq= $_POST['search'];
$sql=mysqli_query($dbc,"SELECT Rest_Details.Resturant_ID, Rest_Details.Resturant_name, Rest_Details.Res_Address_Line_1, Rest_Details.City_name,
Rest_Details.Avg_Del,Delivery_Pcode.Pcode
FROM Rest_Details
INNER JOIN Delivery_Pcode
ON Delivery_Pcode.Restaurant_ID=Rest_Details.Restaurant_ID
WHERE Delivery_Pcode.Pcode LIKE '%$searchq'") or die ("could not search!");
}
Weiter unten auf der Seite.
print("$output");
Ich versuche nur den Restaurantnamen im Moment zu drucken, bis ich die Abfrage funktioniert. Meine Webseite wurde erfolgreich mit der DB verbunden, ich habe Fehlerhandler und der Name der Suchleiste ist Suche. Irgendwelche Vorschläge?
$sql=mysqli_query($dbc,"SELECT Rest_Details.Resturant_ID, Rest_Details.Resturant_name, Rest_Details.Res_Address_Line_1, Rest_Details.City_name, Rest_Details.Avg_Del,Delivery_Pcode.Pcode
FROM Rest_Details INNER JOIN Delivery_Pcode
ON Delivery_Pcode.Restaurant_ID=Rest_Details.Restaurant_ID
WHERE Delivery_Pcode.Pcode LIKE '%".$searchq."'") or die ("could not search!");
Sie Ihr Ergebnis Ich hoffe bekommen: cerrect wird dann versuchen, dies würde
'mysql_error' nicht mit' mysqli' funktioniert. Sie sollten auch vorbereitete Anweisungen verwenden. – chris85
@ chris85 danke – jerneva
Verwenden Sie 'mysqli_error ($ dbc)', um den Grund für den Fehler zu sehen. – Barmar