Я, используя библиотеку разбиения на страницы 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 переменные. Начало результата, конец результата (на странице, а не весь) и общий результат.
Вы уже знаете общие результаты (из разбивки на страницы). Назовем это $total
.
так что теперь получите значение текущей страницы ( $curpage
) из экземпляра CI. Затем,
$result_start = ($curpage - 1) * $per_page + 1; if ($result_start == 0) $result_start= 1; // *it happens only for the first run*
для $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;
отправьте все эти 3 значения для просмотра.
echo "displaying $result_start to $result_end of $total";
Решение itachi отлично работает, за исключением того, что вам нужно обрабатывать случай, когда последняя страница имеет менее $ per_page элементов.
if ($result_end > $total) { $result_end = $total; }