Intereting Posts
WooCommerce – Скрыть другие способы доставки, когда доступна БЕСПЛАТНАЯ ДОСТАВКА Я не могу сохранить некоторые образы facebook на моем сервере, так как он не понимает файл Уникальный код, основанный на уникальном адресе электронной почты в таблице mysql? Запросить сущность слишком большого PHP Обновить значения базы данных со значениями, которые уже находятся в БД Как проверить транзакции Android в приложении для биллинга на моем сервере? Пройдите много дополнительных параметров для маршрута в Laravel 4 Как исправить сообщение: SQLSTATE Слишком много соединений Symfony2 – вызов EmailValidator внутри пользовательского валидатора как заставить хром не перезагружать изображения с тем же URL-адресом, пока страница не обновится, как firefox php variable = variable1 || variable2 Слияние Doctrine: всегда обновляется поле DateTime MySQL – обновление, если существует else, вставить двумя ключами Значение аргумента Objective-C по умолчанию Добавление кода Google Conversion в WordPress Contact Form 7

PHP: Завершить и запустить новый <tr> после 6 строк

Я хочу сделать таблицу, а затем для каждого 6 строк должно быть tr, а затем строки находятся внутри td.

Итак, пример:

<tr> <td><?php echo $show[id]; ?></td> // 1 <td><?php echo $show[id]; ?></td> // 2 <td><?php echo $show[id]; ?></td> // 3 <td><?php echo $show[id]; ?></td> // 4 <td><?php echo $show[id]; ?></td> // 5 <td><?php echo $show[id]; ?></td> // 6 </tr> <tr> // start new tr after 6 rows ...repeat the tds 

Как я могу сделать что-то подобное? Я пробовал себя

 <tr> <?php while ($show == mysql_fetch_array($query)){ ?> <td><?php echo $show[id]; ?></td> <?php } ?> </tr> 

Но, как вы можете видеть, это просто вставляет все в один тр ..

спасибо

 <tr> <?php $c = 0; // Our counter $n = 6; // Each Nth iteration would be a new table row while ($show = mysql_fetch_array($query)) { if($c % $n == 0 && $c != 0) // If $c is divisible by $n... { // New table row echo '</tr><tr>'; } $c++; ?> <td><?php echo $show[id]; ?></td> <?php } ?> </tr> 

Ссылки по теме:

  • Оператор модуля ( % ) на php.net

Подсчитайте количество строк, если по модулю 6 равно нулю, затем эхо-сигнал </tr><tr>

 <tr> <?php $i=0; while ($show == mysql_fetch_array($query)){ ?> <td><?php echo $show[id]; ?></td> <?php if(++$i%6 == 0) echo '</tr><tr>'; ?> <?php } ?> </tr> 

Ты можешь сделать:

 <tr> <?php $count = 0; while ($show = mysql_fetch_array($query)){ if($count == 6) { $count = 0; echo "</tr> <tr>"; } echo "<td>".$show[id]."</td>"; $count++; } </tr> 

Вы случайно используете оператор сравнения == вместо оператора присваивания = .

И чтобы всегда помещать шесть ячеек в каждую строку, я бы сделал следующее:

 $perRow = 6; $counter = 0; echo '<tr>'; while ($show = mysql_fetch_array($query)) { if ($counter % $perRow === 0 && $counter !== 0) { echo '</tr><tr>'; } echo '<td>', $show['id'], '</td>'; $counter++; } while ($counter++ % $perRow !== 0) { echo '<td></td>'; } echo '</tr>'; 

Это гарантирует, что каждая строка будет правильно заполнена шестью ячейками.

 <?php $countRows = 0; while ($show == mysql_fetch_array($query)){ if($countRows == 0) echo '<tr>'; ?> <td><?php echo $show[id]; ?></td> <?php $countRows++; if($countRows == 6){ $countRows = 0; echo '</tr>'; } ?> <?php } ?> <?php if($countRows < 6) echo '</tr>'; ?>