Вывод из mysql по блочно

108
25 июня 2021, 01:20

Необходимо вывести с 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>.

Answer 1

чисто в целях обучения:

$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>';
Answer 2

Очевидно, что 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. Надеюсь будет полезно.

READ ALSO
По каким запросам приходят на сайт. PHP

По каким запросам приходят на сайт. PHP

Необходимо с помощью PHP узнать по какому запросу из поисковика (яндекс/гугл) пришел посетитель на сайт

113
Задание по рекурсии PHP

Задание по рекурсии PHP

Дана последовательность, в которой каждое натуральное число k встречается ровно k раз: 1, 2, 2, 3, 3, 3, 4, 4, 4, 4,… По данному натуральному n выведите...

174
Регулярное выражение для разных URL

Регулярное выражение для разных URL

Какое регулярное выражение способно охватить 6 вариантов написания URL?

109
PHP preg_replace - удалить родительский div (wp)

PHP preg_replace - удалить родительский div (wp)

В выводе текста записи (wordpress) есть:

95