我有一个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`");
答案 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> </td>";
echo "<td> </td>";
echo "</tr>";
}
echo "</table></td><td>";
使用
插入空格,强制可见,或在CSS中使用BigMike的建议。