我到处寻找答案,但我发现的一切似乎都过于复杂......开始认为我找不到它,因为它太简单了!
无论如何,我有一个食物菜单项目数据库,所有菜单项目分为Starter,Main,Dessert等。
我可以输出按类别排序的所有项目(首先是开始,然后是主菜,然后是甜点),但我想在每个组的顶部添加一个标题,以便它们看起来更像......
首发
电网
甜点心
到目前为止,我已经有了一个表格,其中包含使用a 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 :(得分: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>';
}
}
当然,您需要确保对查询的结果集进行相应的排序。