我有这个脚本,它产生一个3列的结果表:
$cols = 3;
$row = 0;
$column = 0;
$count = 0;
echo '<table>';
while($row = mysql_fetch_assoc($result)) {
$count++;
if ($column == 0) {
echo '<tr>';
}
echo "<td>$row['dbField']</td>";
$column++;
if ($column >= $cols) {
$row++;
echo '</tr>';
$column = 0;
}
}
echo '</table>';
这没关系,除非只有1个结果,它只打印一个单元格。我希望它能完成3行,所以在这种情况下,两个单元格将是空的。
我有一个会话变量$_SESSION['r_count']
中存储的记录总数,并认为在上述$column++
部分之后添加以下代码段相当简单:
if ($count == $_SESSION['r_count'] && $column < $cols) {
echo '<td></td>';
$column++;
}
我错了。有人可以建议我如何正确地修改它吗?
答案 0 :(得分:0)
如果你知道行数(即mysql_num_rows()
):
for ($i = 0, $n = ceil($nr_of_rows / $cols); $i != $n; ++$i) {
$row = mysql_fetch_assoc($result);
if ($i % $cols == 0) { echo '<tr>'; }
echo '<td>', $row ? htmlspecialchars($row['dbField']) : '', '</td>';
if (($i + 1) % $cols == 0) { echo '</tr>'; }
}