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

MySQL查询结果表格显示异常:仅1条数据在表内,其余在表外

问题分析与修复方案

我帮你找到了几个导致表格显示异常的核心问题,咱们一步步来解决:

问题根源拆解

  • tbody标签位置错误:你把<tbody>放在了while循环内部,这意味着每循环一行数据就会生成一个新的tbody容器,浏览器解析时会因为表格结构混乱,把后续行的内容“挤”到表格外面。一个标准表格应该只有一个tbody(或按需多个,但绝不该每行一个)。
  • thead标签嵌套错误:多个<th>标签里错误地用了</td>来闭合,比如<th><b>nama atahun</b></td></th>,这种错误的标签嵌套会直接破坏整个表格的DOM结构。
  • 多余的闭合标签:循环结束后多写了一个</table>,导致表格结构冗余混乱。
  • 冗余代码块:while循环里多了一对不必要的{},虽然不影响语法,但会增加代码混乱度。

修复后的完整代码

<?php 
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "tata_kota1";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * from laporan_gini";
$result = $conn->query($sql);

// 先输出表格头部、thead,以及唯一的tbody起始标签
echo "<table border='1'>
        <thead>
            <tr>
                <th>Nomor</th>
                <th><b>tipe variabel</b></th>
                <th><b>variabel turunan</b></th>
                <th><b>nama atahun</b></th>
                <th><b>turunan tahun</b></th>
                <th><b>data_content</b></th>
                <th><b>vertical variabel</b></th>
            </tr>
        </thead>
        <tbody>";

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "<tr>";
        echo "<th>".$row['id']."</th>";
        echo "<td>".$row['nama_variabel']."</td>";
        echo "<td>".$row['nama_variabel_turunan']."</td>";
        echo "<td>".$row['nama_tahun']."</td>";
        echo "<td>".$row['nama_turunan_tahun']."</td>";
        echo "<td>".$row['data_content']."</td>";
        echo "<td>".$row['nama_item_vertical_variabel']."</td>";
        echo "</tr>";
    }
} else {
    // 无数据时,让提示文本跨整个表格宽度显示,布局更美观
    echo "<tr><td colspan='7'>0 results</td></tr>";
}

// 统一闭合tbody和整个表格
echo "</tbody></table>";
?>

修复细节说明

  1. 把<tbody>移到while循环外面,确保所有数据行都放在同一个tbody容器里,符合HTML表格的标准结构。
  2. 修正了thead里所有<th>的闭合标签,把错误的</td>全部替换为</th>,保证标签嵌套完全正确。
  3. 移除了多余的</table>标签,只保留一个正确的表格闭合标签。
  4. 去掉了while循环里冗余的大括号,让代码更整洁易读。
  5. 优化了无数据时的提示显示,用colspan='7'让提示文本铺满整个表格行,避免布局错位。

这样修改后,所有数据应该都会正确显示在表格内部了,结构逻辑和标准Bootstrap表格保持一致,浏览器能正常解析表格的DOM结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:24:15