Наверх

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

Теги :

Постраничная навигация используется наверное на каждом сайте. Она позволяет разбить большой массив данных на порции-то есть, например, разбить 1000 статей на 10 страниц по 100 штук на каждой. Польза от этого большая. При использовании постраничной навигации снижается нагрузка на базу данных, повышается удобство восприятия информации посетителем сайта-а посещаемость-это один из важнейших показателей эффективности сайта. В данной статье мы будем делать навигацию на стороне сервера.О том какие ещё бывают навигации и как сделать клиентскую постраничную навигацию вы можете посмотреть тут.

Также можете почитать о подсчете количества строк в таблице MySql

Ну и сам код постраничной навигации. Будем выводить по 10 записей на страницу.
Подразумевается что соединение с БД уже установлено.

$sum = 10; // число записей на странице
$result = mysql_query("SELECT count(*) as a from 'table name'"); 
$arr = mysql_fetch_row($result); // возвращает неассоциативный массив 
$rec = $arr[0];  // общее число записей в таблице  
 
// если страница существует, выводим её,иначе первую
if(isset($_GET['p'])){
	$str = (int)$_GET['str'];
}
else{
	$str = 0;
}
 
// получем номер начальной записи страницы
$start = $str * $sum;
 
// запрос 
$r = mysql_query("SELECT * FROM data LIMIT $start, $sum");
$n = mysql_num_rows($r); // возвращаем число строк результата запроса
 
// если страница не первая, выводим ссылку НАЗАД
if ($str > 0)
{
	$p = $str - 1;
	echo "<a href=viewpost.php?p=$p>НАЗАД</a>";
}
 
$str++;  // увеличиваем переменную $str на единицу;
// выводим ссылку на следующие пять записей, если она есть, 
// то есть число записей, которые нужно вывести,
// и смещение не превышает общего числа записей
 
if($start + $n < $rec)
echo "<a href=viewpost.php?p=$str>ДАЛЕЕ</a>"; 
 
// выводим записи
for ($i = 0; $i < $n; $i++)
{
	$myrow = mysql_fetch_array($r);			   
	printf ("<h1>%s</h1><p>%s</p>",$myrow["title"],$myrow["description"]);
}

Вот и всё.Подгоняйте данный скрипт под свой сайт и данные.


 Читайте также:


Отправить комментарий

Войти используя Loginza Vkontakte Facebook livejournal Google Account Yandex Mail.ru API Rambler Last.fm Twitter WebMoney
  • Строки и параграфы переносятся автоматически.
  • Доступные HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>

Подробнее о форматировании

два * четыре =
Решите этот математический пример.Решение введите цифрой.Например для "один * четыре=?" введите "4"