昨天我发布了一个关于我的查询无效的问题,因为我想要它(question can be found here),我现在有一个小问题,我整晚一直在研究同一个查询。但是,现在它工作得更好,因为它只显示所需的类别。
我有一个搜索栏,可以将用户定向到另一个页面,以显示他们在第一页上搜索过的产品。我的网站允许用户搜索他们所在地区的外卖。在第二页上,我有一个下拉列表,用于搜索该区域的不同食品类别。
我有30种食物类别,查询现在只显示该地区的食物类别,而不显示所有其他食物类别(之前没有显示)。我现在的问题是,例如某个邮政编码在同一类别3个外卖下将有3个外卖,但所有3个外卖将是相同的外卖,而不是3个不同的外卖。
我已将查询从SELECT *更改为SELECT DISTINCT。我还在我的while语句的上方和下方添加了$ i = 1 / $ i ++,以便尝试检索所需的信息,但是没有运气。
这些是我正在使用的3个表:
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
查询
$get_cats = "SELECT DISTINCT
Rest_Details.Resturant_ID,
Rest_Details.Cat_ID,
Rest_Details.Resturant_ID,
Rest_Category.CategoryID,
Rest_Category.CategoryID,
Rest_Category.Cuisine_category,
Delivery_Pcode.Pcode
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 Rest_Details.Resturant_ID = '" . $rest_id ."' AND
Delivery_Pcode.Pcode= '" . $searchq ."';";
$run_cats = mysqli_query($dbc, $get_cats);
if (!$get_cats) {
echo "Oops: Its seems like we have a problem, refresh and try again";
} else {
$i=1;
while ($row_cats = mysqli_fetch_array($run_cats)) {
$CategoryID = $row_cats['CategoryID'];
$Cuisine_category = $row_cats['Cuisine_category'];
echo"<option value=' $CategoryID'>$Cuisine_category$i</option>";
}
$i++;
}
在db
中预览日期休息详情
Rest_Category
Delivery_code
这就是我得到的
这是我点击美国时获得的结果。但正如您可以从rest_details和rest_category tbl中的数据中看到的那样,美国类别分配给麦当劳和肯德基,因此两个麦当劳不应该展示。它可能是麦当劳和肯德基,如下所示。