php - 如何在打印查询结果时对 HTML 中的元素进行分组?

标签 php mysql

我有一个包含不同类型食物的 MySQL 表:

id     name       type
1      apple      1
2      orange     1
3      lettuce    2
4      broccoli   2
5      pork       3

然后在我的 PHP 文件中,我有一个数组,其中包含每种食物的数字代码,如下所示:

$foodTypes = array (
    1 => 'FRUITS',
    2 => 'VEGETABLES',
    3 => 'MEAT'
);

我想要的是选择我的整个食物表并以食物类型作为标题打印在 HTML 中,如下所示:

FRUITS:
apple
orange

VEGETABLES:
lettuce
broccoli

MEAT:
pork

我知道如何使用多个查询来执行此操作,每个查询对应一种食物类型,但我想使用一个查询来执行此操作。我该怎么做?

最佳答案

我建议为您的类型在您的数据库中添加一个额外的表

id   type
1    FRUITS
2    VEGETABLES
3    MEAT

那么你的数据库绘制将是

SELECT
    t1.name,
    t2.type
FROM tblFood AS t1
INNER JOIN tblTypes AS t2 ON t2.id = t1.type

在 PHP 方面:

$result = array();
while($row = $query->fetch_assoc()) {
    $result[$row['type']][] = $row['name'];
}

然后回显 HTML:

foreach($result as $type=>$list) {
    echo "<h1>".htmlspecialchars($type)."</h1>";
    foreach($list as $food) {
        echo "<p>".htmlspecialchars($food)."</p>";
    }
}

关于php - 如何在打印查询结果时对 HTML 中的元素进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25126664/

相关文章:

php - laravel hasMany 没有 id

php - 更新和插入多行到 MySQL 数据库

php - UTF-8贯穿始终

php - 无法让我的 'delete.php 发送到数据库并标记为已死

mysql 退出处理程序帮助

php - mysql Sum() 和占总和的百分比

php - mySQL 查询,对最新记录而非所有记录进行 JOIN

php - Ajax 和 MySQL 需要时间

php - 查看 "pretty"独白文件的包

php - 如何获取当月的所有星期五