这是我第一次创建搜索栏。 搜索栏位于索引/主页上,它处理在线食品配送服务的英国邮政编码。搜索栏的概念是查看餐馆提供给用户地址的内容。搜索栏成功将用户重定向到菜单选择页面。但是,这是我的问题开始的地方。
愚蠢的我,已经创建了一个动态菜单选择页面,所以当在管理面板中创建一个新餐厅时,它会自动显示在此页面上。它目前成功运作,它显示了数据库中的所有餐厅,无论区域或邮政编码。
由于这是用户在搜索邮政编码时所指向的页面,我现在正在尝试将我的动态菜单选择页面与搜索栏查询相结合,例如,如果用户键入E14 ABU,则所有餐馆都在E14将出现在此页面上。听起来很直接,但是因为在餐馆菜单页面中调用的餐厅详细信息在一个表格中,而在另一个表格中的邮政编码我使用了内部联接来加入他们两个。但查询无效。
我知道查询有效,因为它用于打印动态菜单选择页面。我的查询是打印我或死的"无法搜索!"。我用过
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");
我现在只打算打印餐馆名称,直到我可以查询工作。 我的网页已成功连接到数据库,我有错误处理程序,搜索栏名称是搜索。 有什么建议?将不胜感激
答案 0 :(得分:-1)
如果你的字段名称是正确的,那么试试这个:
$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!");
我希望你能得到你的结果。
答案 1 :(得分:-1)
转义字符串然后进行查询。
$searchq = mysqli_real_escape_string($dbc, $_POST['search']);
$result = mysqli($dbc, "SELECT dpc.Pcode, rd.Resturant_ID, rd.Resturant_name, rd.Res_Address_Line_1, rd.City_name, rd.Avg_Del FROM Delivery_Pcode dpc INNER JOIN Rest_Details rd ON dpc.Restaurant_ID = rd.Restaurant_ID WHERE dpc.Pcode LIKE '%$searchq'");
$results = [];
while($row = mysqli_fetch_assoc($result)) {
$results[] = $row;
}
// print results array
print_r($results);
您必须确保Delivery_Pcode.Pcode是VARCHAR类型