«Отображение результатов X-Y из Z» с использованием библиотеки разбиения на страницы Codeigniter?

Я, используя библиотеку разбиения на страницы Codeigniter,

Мне интересно, как я могу захватить число первых и последних элементов, отображаемых с помощью класса разбиения на страницы?

Итак, если у меня было 12 результатов, а per_page было установлено 5. Я бы хотел

Страница 1: Displaying 1 to 5 of 12 results
Страница 2: Displaying 6 to 10 of 12 results
Страница 3: Displaying 11 to 12 of 12 results .

Держать его просто.

Вам нужны 3 переменные. Начало результата, конец результата (на странице, а не весь) и общий результат.

  1. Вы уже знаете общие результаты (из разбивки на страницы). Назовем это $total .

  2. так что теперь получите значение текущей страницы ( $curpage ) из экземпляра CI. Затем,

     $result_start = ($curpage - 1) * $per_page + 1; if ($result_start == 0) $result_start= 1; // *it happens only for the first run* 
  3. для $result_end вам просто нужно добавить значение на страницу, но учитывая, что это будет 1 меньше,

     $result_end = $result_start+$per_page-1; if ($result_end < $per_page) // happens when records less than per page $result_end = $per_page; else if ($result_end > $total) // happens when result end is greater than total records $result_end = $total; 
  4. отправьте все эти 3 значения для просмотра.

     echo "displaying $result_start to $result_end of $total"; 

Решение itachi отлично работает, за исключением того, что вам нужно обрабатывать случай, когда последняя страница имеет менее $ per_page элементов.

 if ($result_end > $total) { $result_end = $total; }