You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP与HTML将MySQL查询返回的数组数据渲染为表格

原代码错误说明
  • for循环判断条件逻辑错误:$i >$num 初始值$i=0时条件直接不成立,循环不会执行,应改为$i < count($resultats),无需额外依赖$num变量
  • 行号仅赋值未输出:<th scope="row"><?php $row=$i + 1 ; ?></th> 中没有输出逻辑,页面不会显示行号
  • 兼容性风险:如果服务器未开启PHP短标签,<?= 语法不会生效,可替换为完整的<?php echo 写法
可行实现方案

方案1:修复原有for循环逻辑

<table>
<thead>
    <tr>
      <th scope="col">序号</th>
      <th scope="col">Type de sport</th>
      <th scope="col">Adresse </th>
      <th scope="col">Ville</th>
      <th scope="col">code postal</th>
    </tr>
  </thead>
  <tbody>
  <?php for ($i=0; $i < count($resultats) ; $i++){ ?>
    <tr>
      <th scope="row"><?php echo $i + 1 ; ?></th>
      <td><?php echo $resultats[$i]['type_de_sport']; ?></td>
      <td><?php echo $resultats[$i]['Adresse']; ?></td>
      <td><?php echo $resultats[$i]['ville']; ?></td>
      <td><?php echo $resultats[$i]['code_postal']; ?></td>
    </tr>
    <?php } ?>
  </tbody>
</table>

这里直接指定键名输出,避免子数组内部键顺序变化导致表格列错乱的问题。

方案2:更简洁的foreach遍历版本(推荐)

不需要手动计算数组长度,写法更简洁不易出错:

<table>
<thead>
    <tr>
      <th scope="col">序号</th>
      <th scope="col">运动类型</th>
      <th scope="col">地址</th>
      <th scope="col">城市</th>
      <th scope="col">邮政编码</th>
    </tr>
  </thead>
  <tbody>
  <?php foreach ($resultats as $index => $item): ?>
    <tr>
      <th scope="row"><?php echo $index + 1; ?></th>
      <td><?php echo $item['type_de_sport']; ?></td>
      <td><?php echo $item['Adresse']; ?></td>
      <td><?php echo $item['ville']; ?></td>
      <td><?php echo $item['code_postal']; ?></td>
    </tr>
  <?php endforeach; ?>
  </tbody>
</table>

用endforeach 语法替代大括号,在HTML混写场景下可读性更高。

内容的提问来源于stack exchange,提问作者student

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:54:04