Как заказать печать данных в цикле из PHP?

#php

#php

Вопрос:

Дело в том, что в переменной или условии $DivCol он показывает мне два старых результата, в то время как он $DivColGrid показывает мне остальные самые последние результаты, скажем, предположим, что у меня есть 5 зарегистрированных продуктов, чтобы всегда показывать самые последние продукты, которым передается условие SQL/MYSQL-> DESC , поэтому продукт 1, 2 отображается, $DivCol пока он 3, 4, 5 доступен.показано на $DivColGrid .

В заключение я хочу показать самые последние добавленные продукты, но начиная с $DivCol , то есть он $DivCol должен содержать продукты 5, 4 , находящиеся 3, 2, 1 внутри $DivColGrid .

 $DivCol = '<div class="col-1">';
$DivColGrid = '<div class="col-grid">';
$i=1;
while ($stmt->fetch()) {

    if ($i%2 == 0) {
        $DivCol .= '<div class="post">
                        '.$mini_title.'
                    </div>';
        $first = false;
    } else {
        $DivColGrid .= '<div class="post">
                        '.$mini_title.'
                    </div>';
    }

    $i  ;

}
$DivColGrid .= '</div>';
$DivCol .= '</div>';

echo $DivCol.$DivColGrid;
 

Комментарии:

1. Откуда вы знаете, что такое старое и что такое новое? Кроме того, кода, который вы показываете, (1) недостаточно для воспроизведения (2) просто выполняет выбор четной / нечетной строки.

2. @sal потому что уже в запросе mysql я уже передаю условие DESC, но мне нужно отсортировать его внутри цикла

3. @sal здесь if ($i%2 == 0) я показываю две статьи в другом контейнере, то есть это другой дизайн, поэтому это условие

4. @sal Все, что я хочу, это показать здесь продукты 5 и 4 $DivCol , а остальные продукты здесь $DivColGrid в этом случае будут 3, 2, 1.

5. Непонятно, зачем вам нужно сортировать внутри цикла, если вы уже отсортировали их из запроса. Можете ли вы показать фактический результат и каков фактический желаемый результат?

Ответ №1:

Из того, что вы описали, у вас есть 5 продуктов, возвращаемых SQL-запросом, уже отсортированных в обратном порядке (как вы хотите), и теперь все, что вам нужно, это выбрать первые два из отсортированного списка и поместить их в первый div-контейнер, а остальные в другой. Если все правильно, то этого должно быть достаточно:

 $DivCol = '<div class="col-1">';
$DivColGrid = '<div class="col-grid">';
$i=1;
while ($stmt->fetch()) {

    if ($i <= 2) {  // essentially, only pick the first two
        $DivCol .= '<div class="post">
                        '.$mini_title.'
                    </div>';
        $first = false;
    } else {
        $DivColGrid .= '<div class="post">
                        '.$mini_title.'
                    </div>';
    }

    $i  ;

}
$DivColGrid .= '</div>';
$DivCol .= '</div>';

echo $DivCol.$DivColGrid;