【问题标题】:SQL PHP : How to SELECT and fetch like this?SQL PHP:如何像这样选择和获取?
【发布时间】:2017-02-19 04:07:48
【问题描述】:

您好,我知道如何使用有关 select、join、fetch 的基本 SQL
但不知道如何将这样的内容提取到我的网站(见截图)

从截图它也有列 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室

这不是我想要的。

【问题讨论】:

  • 您的si_room 表不需要一个名为room_no 的列来保存三位数的房间号吗? (201, 202, 301, 302)
  • 是的,需要抱歉
  • 不是重复的。我问异常选择
  • 我没有看到任何异常部分。请更清楚地说明您的问题。
  • 访问您的数据库信息似乎没有任何问题。所以真正归结为“学习如何创建 html 表”是时候从一些简单的阅读开始:w3schools.com/html/html_tables.asp

标签: php mysql pdo


【解决方案1】:

幸运的是,您使用的 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";
     }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-29
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多