我正在尝试循环数据库并将数据输出到div中,如果横向有3个div,则会启动一个新的tr
,直到它到达另一个等等。它当前输出如下:
[] [] []
[]
[] []
目前,当它达到3时,我开始使用它开始一个新行,但我不知道我怎么只能回复一次新的tr
?因为它每次都会创建一个新的表格行。
echo '<table><tr>';
while ($result)
{
$i ++;
if ($i&3)
{
echo '<td>
<div>Row Data</div>
</td>';
}
else
{
echo '<tr>
<td>
<div>Row Data</div>
</td></tr>';
}
}
echo '</tr></table>';
$result
变量是我的SQL查询的记录集,一切正常我只是不知道如何只创建一个新的表行一次?
答案 0 :(得分:2)
当你点击3 ...
时,你需要将$ i变量重置为1$i = 0;
echo '<table><tr>';
while ($result)
{
if ($i<=2)
{
echo '<td>
<div>Row Data</div>
</td>';
}
else
{
echo '</tr><tr>';
echo '<td><div>Row Data</div></td>';
$i = 0;
}
$i ++;
}
echo '</tr></table>';
或类似的东西......
答案 1 :(得分:1)
echo '<table><tr>';
var $i = 0;
while ($result) {
if ($i > 2) {
echo '</tr><tr>';
$i = 0;
}
echo '<td></td>';
$i++;
}
echo '</tr></table>';
答案 2 :(得分:1)
我认为你的代码中有一点逻辑。你想在添加3 <td>
时打破这一行。目前您在任何情况下都添加<td>
。你的计数不再适用了。
此外,我不认为按位操作是你想要的。 如果你想要3 td的时间,你将无法用&amp; 3完成。例如3 $ 3是真的,但6&amp; 3不是真的。 7&amp; 3是真的。 11&amp; 3是真的。那么15&amp; 3就是真的。您可以重置$ i,也可以使用%运算符。
答案 3 :(得分:0)
或使用modulo:
if ($i % 3 == 0) {
echo '</tr><tr>';
}
所以你不必重置$ i。
答案 4 :(得分:0)
else
{
echo '<tr>
<td>
<div>Row Data</div>
</td></tr>';
}
应为:
else
{
echo '</tr><tr>
<td>
<div>Row Data</div>
</td>';
}