php自动填充html表与空白数据

时间:2010-10-15 16:39:40

标签: php

我有一个HTML表,其中填充了查询(php)中的数据。我有两个月的数据显示,9月和10月。由于我们在10月份只有15天,它显示了一个包含10行的30行表格和10月份的15行。如何在10月份显示31行,并在日期到来时填写空白行? / p>

当前代码:

 echo "<table border='1'>
 <tr>
 <th>Hour</th>
 <th>Questions</th>
 </tr><br><br>";

while($row = mysql_fetch_assoc($questions))
{
echo "<tr>";
echo "<td>" . $row['hr'] . "</td>";
echo "<td>" . $row['COUNT(*)'] . "</td>";
echo "</tr>";
}
echo "</table></td><td>";

我的查询是:

$oct_week = mysql_query("SELECT COUNT(*), DATE(`dPostDateTime`) AS `day` FROM `tblQA` WHERE cCategory IN ('Football','Baseball','Basketball','Hockey') AND dPostDateTime >= '2010-10-01' AND dPostDateTime <= '2010-10-31' GROUP BY `day`");

1 个答案:

答案 0 :(得分:3)

使用date('t')获取当月的天数,然后在执行循环时,保留当前打印的记录数。打印填写的值后,只需从$printedRecords中减去$daysInMonth,然后循环打印剩余值的空值。

在有问题的代码

之后添加

假设我正在阅读您的查询,请将您的代码更改为:

echo "<table border='1'>
<tr>
<th>Hour</th>
<th>Questions</th>
</tr><br><br>";
$printedRecords = 0;
while($row = mysql_fetch_assoc($questions))
{
    $printedRecords++;
    echo "<tr>";
    echo "<td>" . $row['hr'] . "</td>";
    echo "<td>" . $row['COUNT(*)'] . "</td>";
    echo "</tr>";
}
$daysInMonth = date('t');
$toPrint = $daysInMonth - $printedRecords;
for ($i = 0; $i < $toPrint; $i++) {
    echo "<tr>"; 
    echo "<td>&nbsp;</td>";
    echo "<td>&nbsp;</td>";
    echo "</tr>";
}
echo "</table></td><td>";

使用&nbsp;插入空格,强制可见,或在CSS中使用BigMike的建议。