Я надеюсь, что не пишу дубликат, но я не нашел ничего, что отвечало бы на мой вопрос. (Хотя мне кажется, что это довольно распространенная проблема.)
Проблема возникает почти в каждом веб-проекте: у вас есть таблица с множеством записей, и вы хотите, чтобы они отображались на отдельных страницах.
Теперь мне интересно, как лучше всего рассчитать количество страниц, необходимое для определенного набора строк таблицы.
Вот некоторые подходы, о которых я думал. Я хотел бы получить ответ о том, насколько они эффективны. Я приведу примеры, специфичные для PHP, но могу поспорить, что на других языках есть похожие методы.
Вероятно, лучший способ - это статическое сохранение количества страниц и изменение значения при каждом добавлении новой записи. (Тем не менее ... Я ищу динамическое решение :-))
Сделайте SELECT COUNT(*)
над интересующими строками и вычисляйте номер страницы каждый раз, когда страница отображается.
Сделайте обычный выбор, чтобы получить набор результатов для всех строк. Теперь не загружайте строки, вызывая mysql_fetch_row
или около того, но получите количество строк с помощью mysql_num_rows
. (Поскольку я понятия не имею, как это реализовано, я не могу сказать, является ли это эффективным или нет. Кто-нибудь, кто знает?) Тогда я мог бы удобно перемещать указатель набора результатов. (Для mysqli
существует mysql_data_seek
, но собственное расширение MySQL не имеет аналогичной функции. Поэтому я предполагаю, что это всего лишь некоторое поведение буферизации mysqli
)
Кто-нибудь может сказать, как наиболее эффективно посчитать количество строк (количество страниц)?