Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ WEB Разработка ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

FreeBSD and Nix

Общая

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Постраничная навигация в php


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

К примеру файл подключения к базе:

connect.php

<?php
$db = new mysqli("localhost""user","password","database""3306");
$db->set_charset("utf8");
if(mysqli_connect_errno()){
    echo 'Не удалось установить соединение с базой данных. Повторите попытку позже.';
    exit;
}

?>

Файл с параметрами постраничной навигации navigation.php:

<?
$num = 6;
$page = $_GET['page'];

//Считаем общее количество статей

$querysum = "SELECT COUNT(*) FROM articles where articles.id=\"".$RubricID."\"";
$result00 = $db->query($querysum);

$temp = $result00->fetch_array(MYSQLI_NUM);

$posts = $temp[0];
$total = (($posts - 1) / $num) + 1;
$total =  intval($total);
$page = intval($page);
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;        
        
?>

Файл с выводом навигации echo_navigation.php:

<?
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = "<a href=rubric.php?id=$RubricID&page=1>First</a> | <a href=rubric.php?id=$RubricID&page=". ($page - 1) .">Prev</a> | ";
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = " | <a href=rubric.php?id=$RubricID&page=". ($page + 1) .">Next</a> | <a href=rubric.php?id=$RubricID&page=" .$total. ">Last</a>";
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 5 > 0) $page5left = " <a href=rubric.php?id=$RubricID&page=". ($page - 5) .">". ($page - 5) ."</a> | ";
if($page - 4 > 0) $page4left = " <a href=rubric.php?id=$RubricID&page=". ($page - 4) .">". ($page - 4) ."</a> | ";
if($page - 3 > 0) $page3left = " <a href=rubric.php?id=$RubricID&page=". ($page - 3) .">". ($page - 3) ."</a> | ";
if($page - 2 > 0) $page2left = " <a href=rubric.php?id=$RubricID&page=". ($page - 2) .">". ($page - 2) ."</a> | ";
if($page - 1 > 0) $page1left = " <a href=rubric.php?id=$RubricID&page=". ($page - 1) .">". ($page - 1) ."</a> | ";

if($page + 5 <= $total) $page5right = " | <a href=rubric.php?id=$RubricID&page=". ($page + 5) .">". ($page + 5) ."</a>";
if($page + 4 <= $total) $page4right = " | <a href=rubric.php?id=$RubricID&page=". ($page + 4) .">". ($page + 4) ."</a>";
if($page + 3 <= $total) $page3right = " | <a href=rubric.php?id=$RubricID&page=". ($page + 3) .">". ($page + 3) ."</a>";
if($page + 2 <= $total) $page2right = " | <a href=rubric.php?id=$RubricID&page=". ($page + 2) .">". ($page + 2) ."</a>";
if($page + 1 <= $total) $page1right = " | <a href=rubric.php?id=$RubricID&page=". ($page + 1) .">". ($page + 1) ."</a>";

// Вывод меню если страниц больше одной

if ($total > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo "<div class=\"pstrnav\">";
echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo "</div>";
}
?>

И страница, на которой мы выводим статьи и навигацию под ней(в моем примере вывод статей осуществляется с выводом по рубрикам):

$RubricID = $_GET['id'];
$PageID = $_GET['page'];

include("connect.php");
        //Настройки постраничной навигации
        include("navigation.php");
        

        //Выбираем сами статьи
        $query ="select description,article from articles where articles.id=\"".$RubricID."\" ORDER BY idrubric LIMIT $start, $num";
        
        $result = $db->query($query);
        $num_results = $result->num_rows;
        
        //Вывод списка статей из выбранной категории
        echo "<td id=\"center\"><b>Выбери статью</b><hr>";
        for ($i=0; $i < $num_results; $i++){
                $row = $result->fetch_assoc();
                
                $article = $row['article'];            
                $desc = $row['description'];

         }

        //Вывод постраничной навигации
        include("echo_navigation.php");
        echo "</td></tr></table>";


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.
Весь материал на сайте носит ознакомительный характер,
за его использование другими людьми, автор ответственности не несет.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект