Общие > Базы данных

MySQL + постраничный вывод + локэйт

<< < (2/4) > >>

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 такой же как и у текущей записи, но стоят они выше в таблице

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии