PHP:查询不返回所有数据库结果,而是重复

时间:2016-05-22 14:26:37

标签: php mysqli

昨天我发布了一个关于我的查询无效的问题,因为我想要它(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

中预览日期

休息详情

enter image description here

Rest_Category

enter image description here

Delivery_code

enter image description here

这就是我得到的

enter image description here

这是我点击美国时获得的结果。但正如您可以从rest_details和rest_category tbl中的数据中看到的那样,美国类别分配给麦当劳和肯德基,因此两个麦当劳不应该展示。它可能是麦当劳和肯德基,如下所示。

enter image description here

0 个答案:

没有答案