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

如何用HTML垂直展示PHP中mysqli_fetch_assoc查询的MySQL结果?

解决方案:将MySQL查询结果垂直展示

没问题,我懂你想要的效果——把原本横向排列的表格改成垂直成对展示,也就是每个字段名和对应的数据各占一行,比如Address | 17 King St这种格式。咱们只需要调整HTML表格的结构,结合mysqli_fetch_assoc的逻辑就能实现,不用复杂的操作~

修改后的代码

<?php
// 去掉SQL语句外层冗余的括号
$query = "SELECT * FROM test where id='$id'";
$result = mysqli_query($link, $query);

// 开始输出表格
echo "<table border='1'>";

// 取出查询到的一行数据(你的场景里只有单条结果)
if ($row = mysqli_fetch_assoc($result)) {
    // 逐行输出每个字段名和对应的数据
    echo "<tr>";
    echo "<th>Address</th>";
    echo "<td>" . $row['address'] . "</td>";
    echo "</tr>";

    echo "<tr>";
    echo "<th>City</th>";
    echo "<td>" . $row['city'] . "</td>";
    echo "</tr>";

    echo "<tr>";
    echo "<th>ST</th>"; // 可根据需求改成"State"
    echo "<td>" . $row['state'] . "</td>";
    echo "</tr>";
}

echo "</table>";
?>

代码说明

  1. 结构调整:不再用原来的横向表头行,而是把每个字段名(用<th>标签突出样式)和对应的数据做成单独的表格行<tr>,直接实现垂直排列的效果。
  2. 逻辑简化:因为你的查询结果只有一行数据,用if判断取出$row即可;如果后续有多行结果,把if改成while就能批量处理。

额外提醒:SQL注入风险

你当前的代码直接把$id拼进SQL语句,存在安全隐患。推荐用预处理语句优化:

// 安全的预处理写法
$query = "SELECT * FROM test where id=?";
$stmt = mysqli_prepare($link, $query);
// id是数字类型就用"i",字符串类型用"s"
mysqli_stmt_bind_param($stmt, "s", $id);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);

这样修改后,页面就会输出你想要的垂直格式啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:37:33