2017-01-09 75 views
0

我已到处寻找答案,但我发现的所有内容似乎都过于复杂......开始认为我无法找到它,因为它非常简单!将具有相同值和添加组标题的SQL行组织起来

不管怎么说,我有食物的菜单项,所有这些都归类为入门,主要,甜品等

我可以输出按类别(首发排序第一的所有项目,那么主数据库,然后甜点),但我想一个头添加到每个组的顶部,使他们看起来更像这个...

首发

  • 佩特
  • 个另一个入门...

电网

  • 牛排
  • 鱼&芯片
  • 其他好吃的东西

甜点

  • 你的想法...

到现在为止我已经拿到了包含食品加入到同一个COURSE_ID一个表的表和下面的SQL产生有序列表,但没有标题

$sql = " 
     SELECT * 
     FROM food_items 

     INNER JOIN course_id 
      ON food_items.course = course_id.course 

     ORDER BY course_id 
     "; 

然后,我已经得到了PHP ...

$result = $con->query($sql);   
if ($result->num_rows > 0) {   
while($row = $result->fetch_assoc()) 
echo '<p class="menuItem">' . $row["item"] . ' - £' . $row["price"] . '</p>'; 
}; 

我读过有关ROLLUP,GROUP BY,ORDER BY等,但我似乎可以找出最佳的方式避免过度复杂的事情。 ..

在正确的方向的任何指针将不胜感激

干杯提前, 马克

回答

0

您可以保留当前的PHP代码是,有轻微的修改。您将要添加跟踪当前category的变量,并写出一个新的时它的变化:

$result = $con->query($sql);   
if ($result->num_rows > 0) {   
    $curCategory = ''; 
    while($row = $result->fetch_assoc()) 
    { 
     if($curCategory != $row["category"]) 
     { 
      $curCategory = $row["category"]; 
      echo '<p class="menuCategory"><strong>' . $curCategory . '</strong></p>'; 
     } 
     echo '<p class="menuItem">' . $row["item"] . ' - £' . $row["price"] . '</p>'; 
    } 
} 

当然,你会想,以确保您的结果集从查询相应排序。

+0

工程就像一个魅力!非常感谢你!知道它不会太复杂,但你可能会说,我是一个PHP/SQL新手! 再次感谢,非常感谢 –

相关问题