3 просмотров

Разбивка результатов запроса MySQL на страницы

Анжела Брэдли — веб-дизайнер и эксперт по программированию с более чем 15-летним опытом. Эксперт по проектированию и разработке программного обеспечения для iOS, она специализируется на создании технических гибридных платформ.

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

Установка переменных

Приведенный ниже код сначала подключается к базе данных. Затем вам нужно знать, какую страницу результатов отображать. если (!(isset($pagenum))) код проверяет, указан ли номер страницы ($ номер страницы) не установлен, и если да, то устанавливает его равным 1. Если номер страницы уже установлен, этот код игнорируется.

Вы запускаете запрос. $данные строку следует отредактировать, чтобы она применялась к вашему сайту и возвращала то, что вам нужно для подсчета результатов. $строки строка затем просто подсчитывает количество результатов для вашего запроса.

Далее вы определяете $page_rows, то есть количество результатов, которые вы хотите отобразить на каждой странице, прежде чем перейти к следующей странице результатов.Затем вы можете рассчитать общее количество страниц, которые у вас есть. ($последний) разделив общее количество результатов (строк) на количество результатов, которые вы хотите получить на странице. Используйте здесь CEIL, чтобы округлить все числа до следующего целого числа.

Затем код выполняет проверку, чтобы убедиться, что номер страницы действителен. Если число меньше единицы или больше общего количества страниц, оно сбрасывается до ближайшего номера страницы с содержимым.

Наконец, вы устанавливаете диапазон ($ макс) для результатов с помощью функции LIMIT. Начальный номер определяется путем умножения результатов на странице на единицу меньше текущей страницы. Продолжительность — это количество результатов, отображаемых на странице.

Код для установки переменных пагинации

// Подключается к вашей базе данных

mysql_connect("your.hostaddress.com", "имя пользователя", "пароль") или die(mysql_error());

mysql_select_db("адрес") или die(mysql_error());

// Это проверяет, есть ли номер страницы. Если нет, он установит его на страницу 1

//Здесь считаем количество результатов

//Редактируем $data как ваш запрос

$data = mysql_query("SELECT * FROM topsites") или die(mysql_error());

//Это количество результатов, отображаемых на странице

//Это говорит нам номер нашей последней страницы

//это гарантирует, что номер страницы не меньше единицы и не больше максимального количества страниц

elseif ($pagenum > $last)

// Это устанавливает диапазон для отображения в нашем запросе

$max = 'limit' .($pagenum — 1) * $page_rows .',' .$page_rows;

Запрос и результаты

Этот код повторно запускает запрос из более раннего, только с одним небольшим изменением. На этот раз он включает в себя $макс. переменная, чтобы ограничить результаты запроса теми, которые принадлежат текущей странице. После запроса вы отображаете результаты как обычно, используя любое желаемое форматирование.

При отображении результатов отображается текущая страница вместе с общим количеством существующих страниц. Это не обязательно, но полезно знать информацию.

Далее код генерирует навигацию.Предполагается, что если вы находитесь на первой странице, вам не нужна ссылка на первую страницу. Поскольку это первый результат, предыдущей страницы не существует. Итак, код проверяет (если ($pagenum == 1)) чтобы увидеть, находится ли посетитель на первой странице. Если да, то ничего не происходит. Если нет, то PHP_SELF и номера страниц генерируют ссылки как на первую страницу, так и на предыдущую.

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

Код для результатов разбивки на страницы

//Это снова ваш запрос, тот же самый. единственная разница в том, что мы добавляем в него $max

$data_p = mysql_query("SELECT * FROM topsites $max") или die(mysql_error());

//Здесь вы отображаете результаты вашего запроса

в то время как ($ информация = mysql_fetch_array ( $ data_p ))

// Это показывает пользователю, на какой странице он находится, и общее количество страниц

echo " —Страница $pagenum из $last—

«;

// Сначала мы проверяем, находимся ли мы на первой странице. Если да, то нам не нужна ссылка на предыдущую или первую страницу, поэтому мы ничего не делаем. Если это не так, мы генерируем ссылки на первую страницу и на предыдущую страницу.

//Это делает то же самое, что и выше, только проверяя, находимся ли мы на последней странице, а затем генерируя ссылки «Следующая» и «Последняя»

голоса
Рейтинг статьи
Статья в тему:  Возможен ли варп-драйв из «Звездного пути»?
Ссылка на основную публикацию
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x