Поделить на страницы в php

Segey
На сайте с 23.08.2005
Offline
404
573

Столкнулся с такой проблемой. Есть БД Mysql откуда я делаю запрос и обрабатываю результат с помощью mysql_fetch_row().

В цикле я вывожу все результаты запроса (адреса сайтов с описанием).

Проблема в том, что я не могу поделить на страницы вывод т.е. :

эта функция каждый раз будет обрабатывать результат запроса заново, запрос тоже постоянно запрашивает всю таблицу и так я не могу никак им указать, что нужно начинать например с next_page?от=N&до=M

т.е. я бы передал методом GET через ссылку на 2 страницу такие параметры, но как заставить функцию их понимать?

Т.е. чтобы функция далала следующий запрос от N до M результата обработки результата запроса?

Я думал можно закинуть все это в массив и там такое можно делать, но это выходит очень грамоздко и очень много преобразований получается с результатом запроса.

Brexit - уже совсем рядом. (https://about-this-model.blogspot.com/2019/03/brexit.html)
psylosss
На сайте с 23.12.2005
Offline
126
#1

Segey, делается так (с вариациями):


//Узнаем, сколько всего записей
$sql="SELECT count(*) AS count FROM таблица";
$res=mysql_query($sql);
$r=mysql_fetch_array($res);
$rows_count=$r['count'];

//По сколько записей на странице выводить
$per_page=10;

//Какая сейчас страница? Если не указана, то первая.
$page=!empty($_REQUEST['page'])?intval($_REQUEST['page']):1;

//Сколько всего страниц
$pages_count=ceil($rows_count/$per_page);

//Начиная с какой записи выводить?
$from_row=($page-1)*$per_page;

//Делаем выборку $per_page записей, начиная с $from_row
$sql="SELECT ... FROM таблица LIMIT $from_row,$per_page";
$res=mysql_query($sql);
while ($r=mysql_fetch_array($res))
{
//обрабатываем выборку
}

Я правильно понял вашу проблему?

Веб-разработка. Сложные проекты. Проектирование. Проект-менеджмент. Стартапы.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий