![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
starin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 24.3.2010 Где: Москва Репутация: нет Всего: нет |
Нужно вывести данные из таблицы, допустим по 30 записей на страницу.
при формировании страницы нужен элемент с номерами страниц для перехода к ним, типа: " страница 1, 2, 3 . . . 85, 86 " как реализовать? Каждый раз по два запроса запускать не хотелось бы:
Есть другие варианты решений? |
|||
|
||||
skyboy |
|
||||||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
само по себе два запроса - это неплохо.
но
- ужасно. чтоб подсчитать количество строк не надо выбирать все данные, выделять под них память, чтоб только определить количество записей. есть аггрегиующая функция count. c приведенным условием запрос должен быть такой:
Добавлено через 6 минут и 28 секунд можно вместо запроса с "count(*)" и запроса с limit использовать два же запроса: первый выбирает данные и использует limit и sql_calc_found_rows, а второй запрос - c использованием found_rows
в твоем случае - практически нет никакой разницы. но если у тебя запрос будет сложнее одного сравнения в where, то подобный подход может ускорить работу. |
||||||
|
|||||||
starin |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 24.3.2010 Где: Москва Репутация: нет Всего: нет |
Если большое кол-во строк, я думаю
а может есть возможность не получать кол-во строк второй раз, а хранить его - передавать через клиента? или так делать не стоит? наверняка есть есть отработанные методы... как это обычно делается? Добавлено через 14 минут и 51 секунду
Спасибо, про found_rows() не знал. Это сообщение отредактировал(а) starin - 25.3.2010, 00:27 |
||||||
|
|||||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |