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

如何用PHP实现SQL数据分栏表格展示:每10条数据后新建并列表格继续输出

实现多列分组展示SQL数据的方案

你的问题核心是把原来每条数据一个表格的垂直布局,改成每10条数据一个表格、横向并排的布局。咱们可以通过计数分组+CSS排版来实现,下面是调整后的代码和思路:

思路拆解

  1. 用计数器跟踪当前已输出的数据条数,每累计10条就结束当前表格,新建一个表格继续输出
  2. 用CSS让多个表格横向排列(默认表格是块级元素,会垂直堆叠,需要调整为行内/浮动元素)
  3. 处理最后一组不足10条的情况,确保表格标签正确闭合

修改后的完整代码

<?php
$result = mysqli_query($conn, "SELECT name, id FROM table ORDER BY name");

// 初始化计数器和表格起始标签
$count = 0;
echo '<div style="overflow: hidden;">'; // 包裹容器,清除浮动
echo '<table style="margin: 0 15px 15px 0; float: left; border-collapse: collapse;">';

while($row = mysqli_fetch_array($result)){
    $count++;
    // 输出单条数据的行
    echo '<tr><td><input type="submit" name="select" value="' . htmlspecialchars($row['name']) . '"></td></tr>';
    
    // 每10条数据就新建一个表格(注意跳过第一条的情况)
    if($count % 10 === 0 && $count !== 0){
        echo '</table>'; // 关闭当前表格
        echo '<table style="margin: 0 15px 15px 0; float: left; border-collapse: collapse;">'; // 开启新表格
    }
}

// 关闭最后一个表格和容器
echo '</table>';
echo '</div>';
?>

代码说明

  • 计数器逻辑:$count % 10 === 0 判断是否累计了10条数据,满足条件就切换表格
  • CSS样式:通过float: left让表格横向排列,margin控制表格间距,border-collapse: collapse让表格边框更整洁(可选)
  • 安全处理:用htmlspecialchars()转义输出的name值,避免XSS注入风险(这是好习惯哦)
  • 容器清除浮动:外层的<div style="overflow: hidden;">用来清除内部浮动,避免后续页面布局错乱

额外提示

如果你的提交按钮需要触发表单提交,记得把这些表格放在同一个<form>标签内,或者给每个按钮绑定对应的表单逻辑,否则单独的submit按钮可能无法正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 05:27:41