php - 我不知道如何编写 sql 查询来显示我想要的信息

标签 php mysql sql database

我已经为我的网站设置了数据库,但我对如何编写 SQL 查询来显示我想要的信息感到有点困惑。

这是我的数据库如何设置的图像以及我想要如何显示它的示例:

这是我为获取信息而编写的 SQL 查询(我愿意编写更好的解决方案)

SELECT * FROM drinks_category, drinks_lookup, drinks
WHERE drinks.drink_id = drinks_lookup.drink_id
AND drinks_lookup.drinks_category_id = drinks_category.drinks_category_id

这为我提供了所有信息,但我不确定如何编写输出以使其显示我想要的方式。

最佳答案

一种解决方案是按类别订购:

SELECT * 
FROM drinks_category, drinks_lookup, drinks 
WHERE drinks.drink_id = drinks_lookup.drink_id 
AND drinks_lookup.drinks_category_id = drinks_category.drinks_category_id
ORDER BY drinks_category.drink_category_title

这样,您就可以在 PHP 中循环,并在出现新类别时输出新 header 。像这样的事情:

<?php
$last_category = 0;
foreach($data as $row) {
    if($row['drinks_category_id'] != $last_category) {
        echo '<h1>' . $row['drink_category_title'] . '</h1>';
    }
    echo '<div>' . $row['drinks_name'] . '</div>';
    $last_category = $row['drinks_category_id'];
}
?>

您可能应该使用嵌套的 html 列表而不是上面的标记,但这应该可以帮助您入门。

关于php - 我不知道如何编写 sql 查询来显示我想要的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16753200/

相关文章:

java - 如何按位置从数据库中删除行

php - $row 在哪里定义的?

php - 从 mysql-php(android) 中检索图像

mysql - 提高两个 `OR` 条件 `mySQL` 查询的性能

sql - MS Access 查询在经典 ASP 中不起作用

sql - EXEC 使用数据库

php - 如何找到调用非静态方法的地方?

php - 双重复 key 更新输入错误

mysql - MySQL 可以替代 Oracle 的 NEXT_DAY 函数吗?

mysql - 检查用户是否在多行中为 "active"- MySQL