Paging как узнать номер страницы

[Gisma]

Новичок
Paging как узнать номер страницы

Есть таблица, допустим, news в ней следующие колонки id,name,content,order
Скрипт по-странично выводит новости.
Задача:
- получить по индексу новости страницу на которой она будет отображена, т.е. получить номер этой страницы.
Конечно процедурой в 15 комманд я решу проблему, но я думаю это решаемая проблема на уровне одного MySQL запроса
 

Dagdamor

Новичок
Если поле order хранит номер новости, и эти номера идут по порядку, то вообще делать нечего. Просто вычисляешь номер страницы по номеру новости. Если же нет -
SELECT COUNT(*) FROM news WHERE order<[номер твоей новости]
Получаешь количество новостей "до" текущей. После этого вычисляешь номер страницы.
 

[Gisma]

Новичок
но ряды же БД редактируются, а значит выпадают (взяли и удалили гады новость с id=4 например), наверно действительно подзапросы юзать
 

Serguitar

Новичок->продвинутый
[Gisma]
Мне кажется логика должна быть при выборке новостей на конкретную страницу. Без всяких ордеров. Выбираешь LIMIT для такой-то страницы, остальные будут на следующей и дальше. При пейджинге ЛИМИТ смещается в соотношении page_number*count_new_in_page...

-~{}~ 09.02.06 10:47:

Задача:
- получить по индексу новости страницу на которой она будет отображена, т.е. получить номер этой страницы.
Может что не так понял... Как новости сортируются - по дате, вручную...?
 

[Gisma]

Новичок
;) обычно вручную, да порядок новостей редактируется вручную.
значит я неправильно задал;) Я поставил задачу получить номер страницы одним запросом к MySQL т.е. зная id новости я получаю страницу на которой она расположена
 

Serguitar

Новичок->продвинутый
[Gisma]
Раз порядок ручками - тогда, зная кол-во новостей на странице - разве проблема всё ещё актуальна?
 

[Gisma]

Новичок
В принципе да, просто я некорректно задал вопрос вообще;)
 

Serguitar

Новичок->продвинутый
Опять не понимаю вас, сударь...
news_order = 25
count_on_page = 5
what_page=?
 

[Gisma]

Новичок
;) да все верно, но в этом случае
id=146 news_order = 25
id=153 news_order = 25
id=170 news_order = 25
Такое возможно принципиально
 

Wicked

Новичок
Я так понял, что проблема получить именно номер текущей записи в выборке, отсортированной по ORDER BY, который косвенно задается юзером. Причем, в общем виде, полей в order by может быть несколько.

Все верно?

-~{}~ 09.02.06 09:50:

ну а узнать страницу, зная порядковый номер новости в выборке - пустяк
 

Serguitar

Новичок->продвинутый
id=146 news_order = 25
id=153 news_order = 25
id=170 news_order = 25
Значит сортировка будет ORDER BY news_order, id...?
Раз в порядке нет порядка(сори за тафталогию) - тогда одним действием никак не узнаешь.
 

Serguitar

Новичок->продвинутый
[Gisma]
Зачем? Проверяй на уникальность порядок новости и всё...
 
Сверху