Необходимо вывести с mysql статьи так, чтобы они чередовались по блокам. Чтобы через каждые 2 статьи - следующие 2 оборачивались блоком <div class="row"></div>
Вот картинка, как должно быть:
Сейчас у меня код такой:
$query = "SELECT * FROM articles limit 10";
$result = mysql_query($query);
while($r = mysql_fetch_array($result)){
echo '<div class="col-lg-6">'.$r['title'].'</div>'
}
Выводит подряд <div class="col-lg-6">Заголовок</div>
, а нужно как на картинке каждые 2 статьи в блоке <div class="row"></div>
.
чисто в целях обучения:
$i = 0;
echo '<div class="row">';
while ($r = mysql_fetch_array($result)) {
if ($i % 2 == 0 && $i != 0) {
echo '</div><div class="row">';
}
echo '<div class="col-lg-6">' . $r['title'] . '</div>';
$i++;
}
echo '</div>';
Очевидно, что MySQL тут не при чём. Вам надо сгруппировать данные из списка в списки по N элементов. Если вы освоите этот навык, то сможете применить его не только к этой задаче.
Допустим есть список от 1 до 10. Как его разбить на списки по 2? Может быть что-то есть в документации php? Может быть среди функций для работы с массвами (всегда полезно заглянуть в документацию, не стесняйтесь делать это).
Ого, array_chunk! Попробуем?
Наберите в консоли php -a
(это интерактивный режим, где вы можете писать php-код и он будет сразу выполняться) и введите такие строки:
$list = range(1, 10);
$chunkedList = array_chunk($list, 2);
var_dump($chunkedList);
Бах! То что надо! (чтобы выйти из интерактивного режима нажмите ctrl+c
или введите exit
нажмите enter)
Теперь как это вывести в HTML? Очень просто -- два цикла:
<?php foreach ($chunkedList as $chunk): ?>
<div>
<?php foreach ($chunk as $item): ?>
<div><?= $item ?></div>
<?php endforeach ?>
</div>
<?php endforeach ?>
Примечание
Список строк можно получить так:
$rows = [];
while ($row = mysql_fetch_array($result)) {
$rows[] = $row;
}
Гляньте ещё про то, как генерировать html в php. Надеюсь будет полезно.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Необходимо с помощью PHP узнать по какому запросу из поисковика (яндекс/гугл) пришел посетитель на сайт
Дана последовательность, в которой каждое натуральное число k встречается ровно k раз: 1, 2, 2, 3, 3, 3, 4, 4, 4, 4,… По данному натуральному n выведите...
Какое регулярное выражение способно охватить 6 вариантов написания URL?