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

如何将MySQL数据库单行列多列数据渲染到不同HTML标签

问题核心原因

数据库结果集的指针在第一次while循环遍历后已经移动到末尾,第二次调用mysqli_fetch_assoc时无法再读取到任何数据。你的需求是单行数据的多字段分散渲染,完全不需要写多个循环遍历结果集。

解决方法

一次性把单行数据读取到数组中,后续所有渲染位置直接调用数组内的对应字段即可,修正后代码如下:

<?php
// 建议直接指定你需要的10个字段,不要用SELECT *,查询效率更高,也能避免冗余字段
$sql = "SELECT Description, Material, 其他你需要的字段名 FROM Parts LIMIT 1;";
$result = mysqli_query($conn, $sql);
// 提前定义存储单条数据的数组
$partData = [];
if (mysqli_num_rows($result) > 0) {
    // 单行数据直接读取一次即可,不需要循环
    $partData = mysqli_fetch_assoc($result);
}
?>

<div class="description">
<h3>Description</h3>
  <p>
    <?php echo $partData['Description'] ?? ''; ?>
  </p>
</div>

<!-- td标签请放在table->tr的结构内使用,单独写不符合HTML规范 -->
<td>
  <?php echo $partData['Material'] ?? ''; ?>
</td>

<!-- 其他位置要渲染对应字段直接复用写法即可,比如要渲染Price字段就写<?php echo $partData['Price'] ?? ''; ?> -->

补充说明

  • 代码里的??是PHP7及以上版本支持的空合并运算符,对应字段为空时不会抛出Notice级别的错误,兼容性更好
  • 如果你的需求是渲染多条数据,可以先把所有行一次性读取到二维数组中,后续需要遍历的时候直接遍历这个数组即可,不需要反复操作数据库结果集

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:36:03