URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 5836
[ Назад ]

Исходное сообщение
"Подсчет страниц"

Отправлено Azudim , 25-Июн-08 23:44 
Подскажите плз, как реализовать подсчет количества страниц с данными, если данные берутся из базы MySQL простым SELECTом?
Поясню на примере:
В таблице 500 строк.
запрос в БД показывает первые 25 строк.
Надо сделать оглавление, с помощью выпадающего <select>'a,в котором будет общее количество страниц. При сабмите которого запрос в базу отображал бы порцию данных, соответствующую странице. Нюанс в том, что количество страниц, которое можно выбрать в выпадающей форме высчитывается из общего количества строк в таблице БД. а при повторном запросе (выбрав например страницу 5), количество строк будет МЕНЬШЕ, за счет того, что в MySQL запрос выстраивается с лимитом "начать с количество_строк_на_странице*(Номер_страницы - 1), тобишь LIMIT 100,25 и будет пятой страницей.
Делать второй запрос без ограничений только для подсчета строк не хочется.

Содержание

Сообщения в этом обсуждении
"Подсчет страниц"
Отправлено angra , 26-Июн-08 15:19 
  FOUND_ROWS()
A SELECT statement may include a LIMIT clause to restrict the number of rows the server returns to the client. In some cases, it is desirable to know how many rows the statement would have returned without the LIMIT, but without running the statement again. To obtain this row count, include a SQL_CALC_FOUND_ROWS option in the SELECT statement, and then invoke FOUND_ROWS() afterward:
mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
    -> WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS();