这是我第一次创建搜索栏。 该搜索栏位于索引/主页上,它处理英国邮政编码以获得在线食品配送服务。搜索栏的想法是查看餐厅提供给用户的地址。搜索栏成功将用户重定向到菜单选择页面。但是,这是我的问题开始的地方。PHP/MYSQLI:INNER JOIN搜索栏查询问题
傻了,我已经创建了一个动态的菜单选择页面,所以在管理面板中创建一个新餐厅的那一刻它会自动显示在此页面上。它除了目前成功运行外,还显示了DB中的所有餐馆,不管区域或邮政编码如何。
因为这是用户搜索他们的邮政编码的页面,我现在试图将我的动态菜单选择页面与搜索栏查询结合起来,例如,如果用户输入E14 ABU,所有餐馆在E14中会出现在这个页面上。听起来很简单,但是因为餐馆菜单页面中调用的餐厅细节在一个表格中,而另一个餐厅的邮政编码使用了INNER JOIN来加入它们。但查询不起作用。
我知道查询的工作原理与打印动态菜单选择页面一样。我的查询是打印回我的或死的“无法搜索!”。我已经使用
var_dump($sql)
和
if (!$sql) {
die('Invalid query: ' . mysql_error());
}
但不执行打印,这是令人困惑的。 只是一个空白的白页。
代码
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!");
}
进一步下跌的一页。
print("$output");
我只是试图打印餐厅的名称,直到我能得到查询工作。 我的网页成功连接到数据库,我有错误处理程序,搜索栏名称是搜索。 有什么建议吗?
$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!");
我希望你能得到你的结果:如果你的字段名cerrect那就试试这个,将不胜感激
'mysql_error'不'mysqli'工作。你也应该使用预先准备的语句。 – chris85
@ chris85谢谢 – jerneva
使用'mysqli_error($ dbc)'来查看错误的原因。 – Barmar