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

如何使用PHP在HTML中展示数据库行?附可用代码片段

嘿,我注意到你已经实现了用PHP从数据库拉取数据并展示在HTML表格里的功能,不过可以做几个小优化让代码更规范、易维护,同时修复一些HTML结构上的小问题~

优化后的代码示例

首先修正HTML结构(<tbody>只需要一个,包裹所有数据行),把内联样式移到CSS,同时简化PHP输出逻辑:

<?php
// 假设$records是你已经执行好的mysqli查询结果集
?>
<style>
  table {
    border-collapse: collapse; /* 让表格边框合并更美观 */
    width: 100%;
    margin: 1rem 0;
  }
  th, td {
    border: 3px solid #555;
    padding: 5px 10px;
    text-align: left;
  }
  th {
    background-color: #f0f0f0; /* 表头加背景色区分 */
  }
</style>
<table>
  <thead>
    <tr>
      <th>票号</th>
      <th>名字</th>
      <th>姓氏</th>
      <th>航班名称</th>
      <th>出发地</th> <!-- 假设你截断的`d_name`是出发地字段 -->
    </tr>
  </thead>
  <tbody>
    <?php while($traveller = mysqli_fetch_assoc($records)): ?>
      <tr>
        <td><?= $traveller['ticket_no'] ?></td>
        <td><?= $traveller['fname'] ?></td>
        <td><?= $traveller['lname'] ?></td>
        <td><?= $traveller['flight_name'] ?></td>
        <td><?= $traveller['d_name'] ?></td>
      </tr>
    <?php endwhile; ?>
  </tbody>
</table>
关键优化点说明
  • HTML结构修正:原代码把<tbody>放在while循环里,会导致每一行数据都生成一个独立的<tbody>,这不符合W3C规范,可能引发浏览器渲染异常。现在把<tbody>移到循环外,确保整个表格只有一个tbody容器。
  • 样式分离:把原来写在单个<td>里的样式移到<style>标签(或者可以放到外部CSS文件),这样样式统一管理,修改起来更高效,也符合前端开发的最佳实践。
  • 代码可读性提升:使用PHP短标签<?= ?>替代冗长的echo语句,让混合HTML和PHP的代码更简洁;同时用while(): endwhile;的替代语法,比大括号更清晰,尤其是在嵌套HTML的时候。
  • 修复内联样式语法错误:原代码里直接写border = 3px solid #555555 padding = 5px 10px是错误的,正确的内联样式写法应该是放在style属性中(比如style="border:3px solid #555; padding:5px 10px;"),不过分离到CSS里是更优的选择。

如果你的PHP配置不支持短标签,可以把<?= ... ?>换成<?php echo ...; ?>,功能完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:18:21