gpt4 book ai didi

php - SQL PHP : How to SELECT and fetch like this?

转载 作者:行者123 更新时间:2023-11-29 02:14:30 27 4
gpt4 key购买 nike

你好,我知道如何使用有关选择、连接、获取的基本 SQL
但不知道如何将这样的内容获取到我的网站(见屏幕截图)

enter image description here

从屏幕截图来看,它也有 room_number 列。

<table>
<tr>
<td>room no.</td>
<td>room name</td>
</tr>

<?php
$sql = SELECT * FROM si_room;
$query = $db->query($sql);

while($row = $query->fetch(PDO::FETCH_ASSOC))
{ ?>
<tr>
<td><?php echo ????? ; ?></td>
<td><?php echo ?????; ?></td>
</tr>
<?php } ?>
</table>

更新:

我试试这段代码

<?php
$sql = "SELECT * FROM si_room";
$querymain = $db->query($sql)->fetchAll(PDO::FETCH_GROUP);
?>
<table>
<tr>
<td>room no.</td>
<td>room_name</td>
</tr>
<?php
foreach ($querymain as $list_id => $list_data)
{
echo "<tr>";
echo "<td> floor ".$list_data[0]['room_floor']."<br>";
foreach ($list_data as $row)
{
echo $row['room_no']."</td>";
echo "<td>".$row['room_name']."</td>";
}
} ?>
</tr>
</table>

但是结果是

二楼

201 | A房间

二楼

202 | B房间

3楼

301 | E室

3楼

302 | F室

这不是我想要的。

最佳答案

幸运的是,您正在使用 PDO,它已经为您提供了此功能,它可以完全按照您的要求进行操作——根据某些列对数据进行分组。

PDO can group results into the nested arrays , 基于所选的第一个字段。因此,您需要将列表 ID 列为字段列表中的第一个字段,然后使用具有上述获取模式的 fetchAll() 获取您的行:

$sql = "select room_floor, room_name, room_no from si_room";
$building = $dbh->query($sql)->fetchAll(PDO::FETCH_GROUP);

现在您得到了一个整洁的嵌套数组,其中您的行按列表 ID 分组!

为了让它输出整齐,你必须使用两个嵌套的 foreach 运算符

foreach ($building as $floor_no => $rooms)
{
echo $floor_no."\n";
foreach ($rooms as $row)
{
echo $row['room_name']."\n";
}
}

关于php - SQL PHP : How to SELECT and fetch like this?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42323516/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com