我有一个按类排序的SQL学生列表,此列表进入TCPDF以创建PDF 2列表。我的问题是我找不到打破界限的方法。
我所知道的是一列最多可以有59行。因此,如果下一组不合适,他们应该转到下一栏。
理论是检查实际行
$html=$html.'<tr><td width="40"> </td><td width="90"> </td><td width="50"> </td><td width="45"> </td><td width="45"> </td></tr>'; //35
while($classok = mysql_fetch_array($classquery))
{
$classes=$classok['id'];
$classnum=mysql_num_rows(mysql_query("SELECT class_id FROM pupils WHERE class_id=".$classes." AND pupils.torolve=0 and pupils.statusz=1"));
如果下一个课程超过59行,我想在这里将行向下移动。像:
$html=$html.'<tr><td></td></tr>';
但我不能以正确的方式处理这个条件......
问题是前一个组随机完成,所以下一个类应该在新页面上启动。
$headek=$headek.'<b><tr><th>D.O.B.</th><th colspan="2">';
$headek=$headek.$classok['name'].'</th><th colspan="2">';
$headek=$headek.$classok['initname'];
$sum=$sum+$classnum;
$headek=$headek.'('.$classnum.')'.'</th></tr></b>';
$html=$html.strtoupper($headek);
$pupilssql="SELECT pupils.extra_functions, pupils.name, pupils.dateofbirth, pupils.sex, YEAR(pupils.dateofbirth) AS year, MONTH(pupils.dateofbirth) AS month, DAY(pupils.dateofbirth) AS days, pupils.name, pupils.firstname, pupils.class_id FROM pupils, classes WHERE pupils.class_id=classes.id AND pupils.torolve=0 and pupils.statusz=1 AND class_id=".$classes." ORDER BY pupils.name ASC";
$pupilsquery=mysql_query($pupilssql);
while($result = mysql_fetch_array($pupilsquery))
{
etc...
除了我不能放入代码的这个专栏中断以外,一切都运行良好......任何人的帮助都将受到赞赏。
答案 0 :(得分:0)
他们需要是独立的表格。为每个59个学生的块开始一个新表,然后使用CSS浮动表,使它们彼此相邻堆叠。或者你可以懒惰并将这些表放在一个表中并进行EZ格式化(yuck)。
答案 1 :(得分:0)
在循环之前添加变量:$i = 0;
在循环开始时迭代它:$i++;
在你的循环结束时,使用if和modulus来打印你想要的每59个(或多个)行所需的分隔符:if($i % 59 == 0) echo '<br />';
将<br />
更改为您需要分隔各个部分的代码