Возможно ли вывести из базы массив одинаковых строк

Рейтинг: 0Ответов: 0Опубликовано: 03.07.2023

Пытаюсь подсчитать и вывести числа в виде массива из базы данных для того, чтобы отобразить на одной странице несколько пагинаций. Но получилось вывести только одну. Как сделать так, чтобы можно было вывести всё одним запросом в sql не нагромождая распределить по разным div?

// Подсчет количества строк пагинации карусели
$count = R::count('articles', 'cat = ?', [20]);
$separate = 1;  //количество записей для вывода на одну пагинацию
$str_pag = ceil($count / $separate); //округлить дробь
 
for ($i = 1; $i <= $str_pag; $i++) {
  $pag_num[] = "<li class='item'><a href='#'>".$i."</a></li>";
  $num = implode('', $pag_num);;
}

в данном html получается вывести только один тип одинаковых строк

<ul>
              <?= $num ?>
            </ul>
             <ul>
              <?= $num ?>
            </ul>
             <ul>
              <?= $num ?>
</ul>

Пытался использовать select для вывода массива, но не вышло

$res[] = R::getAll("SELECT
            `cat`,
            COUNT(`cat`) AS `count`
          FROM
            `articles`
          GROUP BY
            `cat`
          HAVING 
            `count` > 1");
foreach ($res as $row) {
  $count = $row;
}
 
  for ($i = 1; $i <= $count; $i++) {
    $pag_num[] = "<li class='item'><a href='#'>".$i."</a></li>";
    $num = implode('', $pag_num);;
  }

P.S: У меня некоторое число строк в БД разбитых на группы. В одной группе допустим 10 строк, в другой 15, в третей 20. Все они выводятся на одну страницу по своим блокам по вертикали как карусель. Для каждой группы нужно подсчитать строки в таблице. Сумму разбить на пагинацию. Допустим если 10, то 1,2,3,4,5,6,7,8,9,10. Теперь необходимо вывести эти цифры в ряд пагинации. Я по ним кликаю и появляется нужная строка. И так с остальными. У меня получилось сделать только чтобы выводилось для одной группы, а для других придется делать тоже самое. Кажется есть какое0то более элегантное решение

Ответы

Ответов пока нет.