Постраничная навигация на PHP и MySQL
Автор: © web-rubik
2173 Просмотры
32 Понравилось
Постраничная навигация для сайта, написанная на PHP и MySQL. В этом примере я расскажу, как осуществить постраничную навигацию по сайту. Простой скрипт на языке PHP и MySQL разбития информации на страницы. Если вы ищите готовое решение на PHP, то вы топали по адресу!
Для начала сам код:
<!-- ==================== Подключение к базе данных MySQL, файл db.php ==================== --> <?php $db = mysql_connect("localhost", "root", "1234"); // root - логин, 1234 - пароль к базе данных mysql_select_db("test", $db); // test - имя базы данных mysql_query("SET character_set_results = ′utf8′, character_set_client = ′utf8′, character_set_connection = ′utf8′, character_set_database = ′utf8′, character_set_server = ′utf8′", $db); ?> <!-- ==================== Код разбития на страницы содержимого из базы данных MySQL, файл index.php ==================== --> <?php // <================================================================================================================== // ==================================================> ------------- <====================================================== // ===============================================> © Copyright barik <=================================> Скрипт: PAGINATION // ==================================================> ------------- <====================================================== // ========================================================================================================================= include_once("../Pagination/Manager.php"); // ===========================================================> Подключаем скрипт include_once("../Pagination/Helper.php"); // ============================================================> Подключаем скрипт $paginationManager = new Krugozor_Pagination_Manager(10, 3, $_REQUEST); // =========> Количество записей и пунктов номерации $sql = "SELECT SQL_CALC_FOUND_ROWS text, date FROM article ORDER BY id DESC LIMIT " . $paginationManager->getStartLimit() . "," . $paginationManager->getStopLimit(); // =============> Подключаемся к таблице с содержимым $result_list = mysql_query($sql, $db); // ============================================================> Подключаем результат $result_found_rows = mysql_query("SELECT FOUND_ROWS() as ′count′", $db); // =====> Забираем количество всех строк из таблицы $count = mysql_fetch_assoc($result_found_rows); // ======================================> Записываем их в переменную $count $paginationManager->setCount($count["count"]); // ==================================> Отдаём все строки на номерацию страниц while(($row = mysql_fetch_assoc($result_list)) !== false){ // ================================> Подключаем данные из таблицы $data[] = include "row.php";} // ========================================================> Записываем в переменную $data include("template.php"); // ==================================================================> Вывод кода номерации страниц // ========================================================================================================================= // ========================================================================================================================= // ==================================================================================================> // Скрипт: PAGINATION // ========================================================================================================================= // =====================================================================================================================> ?> <!-- ==================== Файл row.php ==================== --> <?php echo "<h2>".nl2br($row[′text′])."</h2>"; ?> <?php echo "<p>".$row[′date′]."</p>"; ?> <!-- ==================== Шаблон template.php ==================== --> <?php // <================================================================================================================== // ==================================================> ------------- <====================================================== // ===============================================> © Copyright barik <==========================> Скрипт: PAGINATION ШАБЛОН // ==================================================> ------------- <====================================================== // ========================================================================================================================= $counter = $paginationManager->getAutoincrementNum(); // ========================================================> Нумирацыя $paginationHelper = new Krugozor_Pagination_Helper($paginationManager); // ===============================> Передача объекта $paginationHelper->setPaginationType(Krugozor_Pagination_Helper::PAGINATION_NORMAL_TYPE) // =============> Стандартный стиль ->setCssNormalLinkClass("normal_link") // =============================================================> Подключение CSS ->setCssActiveLinkClass("active_link") // ==================================> Страница которого открыта в текущий момент ->setRequestUriParameter("param_1", "value_1") // ===============================> Параметр для query string гиперссылки ->setRequestUriParameter("param_2", "value_2") // ===============================> Параметр для query string гиперссылки ->setFragmentIdentifier("result1"); // ===================> Устанавливаем идентификатор фрагмента гиперссылок пагинатора // ========================================================================================================================= // ========================================================================================================================= // ===========================================================================================> // Скрипт: PAGINATION ШАБЛОН // ========================================================================================================================= // =====================================================================================================================> ?> <div style="text-align:center;"> Всего записей: <strong><?=$paginationHelper->getPagination()->getCount()?></strong> <?php if($paginationHelper->getPagination()->getCount()): ?> <br><span>Страницы:</span> <?=$paginationHelper->getHtml()?> <?php endif; ?> </div> <!-- ==================== CSS стили для вида кнопок, файл style.css ==================== --> <style type="text/css"> .normal_link, .active_link{ font-size:15px; border:1px solid #ccc; padding:3px; } .active_link{ border:1px solid red; } </style>
Теперь начнём по порядку.
Нам нужно подключиться к базе данных MySQL, где будет таблица с информацией, которую нужно вывести. Само подключение может храниться в отдельной папке или в индексном файле.
Подключение есть, идём дальше.
Предположим у нас есть таблица article, в которой хранятся в поле text – статьи, а в поле date – дата их публикации. Естественно если статей много, их нужно вывести, к примеру, по 10 статей на каждой странице, а под статьями, мы хотим вывести по 3 ссылки на следующие страницы.
Скачиваем внизу исходники, создаёте нужную нам директорию, к примеру – articles и помещаем туда скаченную папку с файлами – Pagination. Директория будет выглядеть где то так:
Articles/
--Pagination/
------Helper.php
------Manager.php
--index.php
--db.php
--row.php
--template.php
В файле index.php укажем подключение к остальным файлам:
include_once("db.php")
include_once("Pagination/Manager.php")
include_once("Pagination/Helper.php")
Строка отвечающая за вывод количества статей будет выглядеть так:
$paginationManager = new Krugozor_Pagination_Manager(10, 3, $_REQUEST)
Полученные данные из таблицы article сохраним в переменной $data:
$data[] = include "row.php"
И подключим шабон template.php:
include("template.php")
В скрипте я прокомментировал все действия, в исходниках полностью рабочий пример.
Основная информация была взята на официальном сайте разработчика навигации pagination
Если что-то не понятно – пишите в комментариях...
Комментариев нет или
Оставить комментарий
Оставленные комментарии проверяются технической частью интернет портала Web-rubik.ru