拆分php生成的长HTML表?

拆分php生成的长HTML表?,php,html,mysql,Php,Html,Mysql,我使用MySql查询从数据库中选择数据,然后以HTML表的形式打印数据。它工作得很好,但有时表格由数百行组成,网页看起来非常糟糕。有没有办法把桌子并排地分成2或3对半 当前输出 期望输出 PHP 实现这一目标的最佳方式是什么? 非常感谢您的帮助。您可以使用PHP在循环中确定循环索引是否可被某个数字整除,具体如下: echo "<h3>Classes attended :</h3>"; echo "<table class='dates' border='1'>

我使用MySql查询从数据库中选择数据,然后以HTML表的形式打印数据。它工作得很好,但有时表格由数百行组成,网页看起来非常糟糕。有没有办法把桌子并排地分成2或3对半

当前输出

期望输出

PHP

实现这一目标的最佳方式是什么?
非常感谢您的帮助。

您可以使用PHP在循环中确定循环索引是否可被某个数字整除,具体如下:

echo "<h3>Classes attended :</h3>";
echo "<table class='dates' border='1'>";
$rowCount = 1;
$numRows = count($results);
$maxRows = 12;

foreach ($results as $dates) {

    echo "<tr><td width='50%'>";
    echo $dates->db_date;
    echo "</td>";
    echo "<td width='50%'>";
    echo $dates->day_name;
    echo "</td>";
    echo "</tr>";
    if($rowCount % $maxRows == 0 && $rowCount != $numRows)  {
       echo "</table><table class='dates' border='1'>";
    }
    $rowCount ++;
}

echo "</table>";
这是做这件事的基础。基本上,在循环中,您正在测试每个索引,看看它是否可以被$maxRows整除,如果可以,那么您将关闭表并打开一个新表。您必须添加样式才能并排放置桌子


如果要扩展此概念,可以将$maxRows设置为$numRows的求值。例如,如果您希望将项目尽可能地拆分为一半,以便只显示两个表,您可以$numRows=计数$结果$maxRows=整数$numRows/2

受罗伯特·韦德回答的启发:

<?php
....
echo "<h3>Classes attended :</h3>";

 $i=0;
 $maxRows=10;
 foreach ($results as $dates) {
    $a=$i/$maxRows == 0 ? "<table class='dates' border='1'>":"";
    $b=$i/$maxRows == 0 ? "</table>":"";

    echo $a;
    echo "<tr><td width='50%'>";
    echo $dates->db_date;
    echo "</td>";
    echo "<td width='50%'>";
    echo $dates->day_name;
    echo "</td>";
    echo "</tr>";
    echo $b;

    $i++;
}
?>
最后,向表中添加一些css样式。

您还可以使用它来拆分结果。或者,您可以进行分页,只获取查询中的某个范围,而不必彼此相邻地显示许多表。例如:

SELECT * FROM `clients` LIMIT 5, 10 

从第5行中选择10行。现在,当您更改页面时,只需更改限制值。

更好地分页结果,这是标准做法。
SELECT * FROM `clients` LIMIT 5, 10