PHP while循环,表行

时间:2011-01-02 16:31:07

标签: php loops html-table

我正在尝试循环数据库并将数据输出到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查询的记录集,一切正常我只是不知道如何只创建一个新的表行一次?

5 个答案:

答案 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>';
}