我通常非常擅长从数据库中检索数据,但我已经停滞不前了。
我有一个搜索栏,可以将用户定向到另一个页面,以显示他们在第一页上搜索过的产品。我的网站允许用户搜索他们所在地区的外卖。在第二页上,我有一个下拉列表,用于搜索该区域的不同食品类别。
我的问题是我有近30个食品类别,并非所有区域都有30个类别中的每个类别的外卖关节,我试图仅显示该区域的食品类别而不显示其他类别。到目前为止,我的查询显示了所有30个类别,无论区域实际具有多少类别,当我将WHERE设置为除restaurant_id以外的任何类别时,类别不再显示。
我已经尝试使用Inner加入2/3表来使这个查询工作,但没有快乐。
function prompt ...
查询
Delivery_Pcode Tbl
1 Del_code_id
2 Restaurant_ID
3 Pcode
4 Del_Price
Rest_Category tbl
1 CategoryID
2 Cuisine_category
3 Category_img
Rest_Details Tel
1 Resturant_ID
2 Resturant_name
3 City_name
4 Cat_ID
我试图从Pcode等于用户输入代码的表中选择所有内容。每个餐厅提供的邮政编码保存在Delivery_Pcode.Pcode中,$ searchq在页面顶部定义为输入的邮政编码$ _post值。
我试过了: WHERE Restaurant_name = $ rest_name(也已定义) WHERE Restaurant_name = $ rest_name和Restaurant_id = $ rest_id(也已定义)
我不知道我是否正在考虑深入研究这个问题,并且有一种非常简单的方法(我倾向于这样做),或者我需要删除查询并重新开始......建议或指导非常感谢。
我知道查询有效,因为填充它只是导致我出问题的查询。
答案 0 :(得分:0)
您可以尝试添加引号
"SELECT * FROM Rest_Category
INNER JOIN Rest_Details
ON Rest_Category.CategoryID = Rest_Details.Cat_ID
INNER JOIN Delivery_Pcode
ON Delivery_Pcode.Restaurant_ID = Rest_Details.Resturant_ID
WHERE Delivery_Pcode.Pcode= '$searchq'";
或(在适当的输入消毒之前)
"SELECT * FROM Rest_Category
INNER JOIN Rest_Details
ON Rest_Category.CategoryID = Rest_Details.Cat_ID
INNER JOIN Delivery_Pcode
ON Delivery_Pcode.Restaurant_ID = Rest_Details.Resturant_ID
WHERE Delivery_Pcode.Pcode= '" . $searchq ."';";