Intereting Posts
Соответствие символов символов Unicode в PCRE / PHP Может ли кто-нибудь объяснить мне функцию pack () в PHP? Что означает ошибка «PHP Fatal error: не может вызвать перегруженную функцию для не-объекта»? Получить URL-адрес категории в Magento при создании пользовательского меню как я могу получить идентификатор кода из FacebookApiException $ e? Gearman addTaskBackground полный Обратный звонок не запускает Можно ли изменить запрос после привязки параметра в mysql? mysqli_stmt :: bind_result (): Число переменных привязки не соответствует количеству полей в подготовленном сообщении Хеширование паролей, совместимое с Java и PHP Что LOCK_NB действительно делает в стае? Как получить идентификатор последней обновленной строки в MySQL? PHP foreach loop с флажками Catch не работает и как отключить обработчик исключений PHP: Каков поток управления для обработки ошибок? Как динамически получать значение тега select из таблицы MySQL

Многостраничные массивы массивов PHP

У меня есть массив, который имеет более 10 тыс. Результатов (сгенерированный MySQL-запросом), и мне интересно, что лучше всего подходит для его разбиения на страницы? Извлеките все данные сначала, затем разделите их на страницы или еще один быстрый / лучший способ?

Используйте синтаксис LIMIT MySQL для получения желаемых результатов из базы данных до того, как он достигнет вашего PHP-кода.

Что-то вроде этого:

 $offset = 0; $per_page = 25; $query = "SELECT * FROM `blah` LIMIT $offset, $per_page"; ... 

Как и было предложено, вы можете использовать LIMIT . Чтобы узнать общее количество результатов, вы можете сделать следующее:

 SELECT SQL_CALC_FOUND_ROWS * FROM `table` ... LIMIT 0, 20 

Затем:

 SELECT FOUND_ROWS() AS `total_results` 

Чтобы получить максимальный номер страницы вашего пагинатора.

Чтобы отобразить ссылки навигации по страницам для этих многих записей, рассмотрите возможность использования «логарифмической» навигации по страницам. Глянь сюда:

Как выполнять навигацию по страницам для многих, многих страниц? Логарифмическая навигация по страницам

Вероятно, вы захотите выполнить запрос COUNT (), прежде чем потянуть свой контент, чтобы определить, сколько строк у вас есть. Общий алгортим для определения того, сколько страниц вам нужно, тогда

ceil (totalRows / rowsPerPage)