Вставить tr после каждого третьего цикла

Я делаю форум на PHP. Я должен отображать все категории форума в таблице, и для этого я использовал цикл while. Тем не менее, я хочу иметь только 3 td в каждой строке таблицы. Чтобы прокрутить категории, я использую цикл while с запросом, поэтому я не думаю, что могу использовать модуль здесь.

Почему вы не можете использовать модуль? Просто добавьте счетчик где-нибудь, и если он набирает % 3 == 0 сбросьте счетчик и сделайте свой материал.

Возможно, вам понадобится сделать что-то дополнительно, если это для первого и последнего, и тому подобное, но нет причин не использовать модуль с временем.

 $i=0; while(guard()){ if($i % 3 == 0){ //ploing } $i++ } в $i=0; while(guard()){ if($i % 3 == 0){ //ploing } $i++ } 

Этот код закроет любые дополнительные строки:

 <table> <?php $i = 0; while($row = mysql_fetch_array($result)){ $i++; //if this is first value in row, create new row if ($i % 3 == 1) { echo "<tr>"; } echo "<td>".$row[0]."</td>"; //if this is third value in row, end row if ($i % 3 == 0) { echo "</tr>"; } } //if the counter is not divisible by 3, we have an open row $spacercells = 3 - ($i % 3); if ($spacercells < 3) { for ($j=1; $j<=$spacercells; $j++) { echo "<td></td>"; } echo "</tr>"; } ?> </table> 

Я не тестировал код, но логика должна работать:

 <Table> <?php $i = 0; while($row = mysql_fetch_array($result)){ if($i == 0){ echo"<TR>"; } echo"<td>".$row[0]."<TD>"; $i++; if($i == 3) { $i = 0; echo"</tr>" } } if($i ==1){ echo "<td></td><td></td></tr>"; } if($i ==2) { echo "<td></td></tr>"; } ?> <table>