Делаем построчный вывод материалов из MySQL

Делаем построчный вывод материалов из MySQL

82011-11-1040193Денис Абдуллин
Часто, когда люди пишут какие-нибудь модули, дополнения или маленькие CMS, люди сталкиваются с таким вопросом как вывод определенного количества материалов на определенных, генерируемых страницах.

Меньше описания, больше дела! Для реализации поставленной задачи нам необходимо определиться с количеством элементов на странице. Давайте сразу эту цифру сохраним в переменной $num_elements. Пусть это будет цифра 5.

Код



Все элементы (давайте это будут статьи) хранятся в таблице publ, кстати, как и на этом сайте. Заранее созданная таблица, имеющая вид:

id title main sceen cat
  • 1 Европа и её просторы ... /screen/1.png 1
  • 2 Французская кухня ... /screen/765.png 2
  • 3 Изменения в политике ... /screen/12a.gif 3
  • ... ... ... ...
  • 49 Голанские салаты ... /screen/salat.jpg 2


Сначала подсчитаем число, равное числу элементов в таблице, деленное на число элементов, выводимых на странице. Затем округлим эту цифру до большего целого.

Итак, считаем число элементов в таблице пользователей:

Код



Функция ceil округляет полученное число до большего целого.

Для постраничного вывода информации будем использовать оператор “SELECT” с выражением “LIMIT”, которое принимает в качестве аргумента один или два параметра. Если указан только один параметр, то будет выбрано столько элементов, сколько указано в этом аргументе, начиная с первого. А если указаны оба, то выбирается столько элементов, сколько указано во втором аргументе, начиная с позиции, указанной в первом аргументе. При этом отсчет позиций начинается с нуля.

Синтаксис запроса следующий:

Код



где, $start – начальная позиция выборки, а $num_elements – количество элементов. Теперь остается только передать скрипту значение переменной $start. Это значение мы будем передавать методом GET.

Код



Также вставим строчку, ...

Код



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

Теперь определимся с навигацией по страницам. Структура следующая:

Переход на первую и последнюю страницу. Будет отображаться, если текущая позиция находится далее 2-х позиций относительно крайних.

Переход на предыдущую и следующую страницу. Будет отображаться всегда, кроме первой и последней страницы.

И отображение номеров двух следующих и предыдущих страниц справа и слева от текущей.

<< < 5 6 7 8 9 > >>

Проверяем нужна ли ссылка "На первую"

Код



Проверяем нужна ли ссылка "На последнюю"

Код



Проверяем нужна ли ссылка "На предыдущую"

Код



Проверяем нужна ли ссылка "На следущую"

Код



Теперь сформируем по 2 страницы до и после текущей (при наличии таковых, конечно):

Код



Осталось сформировать навигационую цепочку:

Код



Предлагаю всю вышеуказанную процедуру проверок и формирований объединить в одну функцию GetNav(), например.

Итак, получаем файл functions.php:



Итак, резюмируя все предыдущие выкладки, получаем файл index.php:

Код



И файлик для подключения к Базе данных db_conn.php:

Код



Как Вы, наверное, уже поняли, цепочку навигации можно "показывать" как до вывода пользователей, так и после него. Следует только написать строку:

echo GetNav($p, $num_pages);

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

Создать сайт в uKit Нужен классный сайт для бизнеса?
Воспользуйтесь сервисом uKit. Никакого кода!
Комментарии (3)
Гость 2012-07-19 в 12:44 / МатериалСпам
Выводит текст кракозябрами как это исправить ,кодировку и в mysql менял и в самом документе. Не помогает.
0
Гость 2012-02-03 в 17:19 / МатериалСпам
Ну так это же я :D
2
Гость 2012-02-03 в 17:13 / МатериалСпам
интересненько
0
Чтобы оставить комментарий или отзыв под этой публикацией, войдите или зарегистрируйтесь.