如何用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>"; ?>
代码说明
- 结构调整:不再用原来的横向表头行,而是把每个字段名(用
<th>标签突出样式)和对应的数据做成单独的表格行<tr>,直接实现垂直排列的效果。 - 逻辑简化:因为你的查询结果只有一行数据,用
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
相关产品推荐
相关产品推荐

