Общие > Базы данных
MySQL + постраничный вывод + локэйт
Maniac:
IMHO, можно чем-то вроде этого (страницы нумеруются с нуля)
select floor(count(id)/2) from $table where id
Wyclef:
Другой вариант:
Можно задействовать специальную индексную таблицу и периодически сливать туда расчитанные данные и т.д. На основе нее сгенерить страницы и редиректить куда надо.
Макс:
Вот такая идея возникла.
При выводе обычно происходит сортировка по какому-то полю:
SELECT * FROM tab ORDER BY id DESC
(это например)
Тогда запросом
SELECT COUNT(*) FROM tab WHERE id > $id
мы узнаем сколько записей находится перед записью с указанным $id.
Зная это количество можно определить страницу.
Идея ясна ?
Wyclef:
--- Цитировать ---Макс:
WHERE id > $id
--- Конец цитаты ---
Так записи наверно не по id планируется выводить, а по каким-то другим параметрам, определяющим положение этого id в выборке...
Макс:
Wyclef
определяем значение поля по которому сортируем у текущей записи
select sort_field from tab where id = $id
затем считаем сколько перед ней записей
select count(*) from tab where (sort_field > $sort_field) OR (sort_field = $sort_field AND id > $id)
второе условие в запросе для того чтобы посчитать записи у которых sort_field такой же как и у текущей записи, но стоят они выше в таблице
Навигация
Перейти к полной версии