Привет, это опять я. Сегодня я вам расскажу и покажу постраничную навигацию типа "1 | 2 |
3 | 4 | 5" или "1 2
3 4 5".
1.Редактор любого типа(лучше Adobe Dreamweaver SC4 - как у меня).
2.Малейшие знания php.
3.Сайт на платном или бесплатном хостинге -
http://bormotuhi.net/showthread.php?t=757 !
Начнем:
PHP код:
<?php
// Устанавливаем соединение с базой данных
$DBcon = mysql_connect("localhost","Логин","Пароль");
mysql_select_db ("Ваша БД",$DBcon);
// Переменная хранит число сообщений выводимых на станице
$num = 10;
// Извлекаем из URL текущую страницу
$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result = mysql_query("SELECT COUNT(*) FROM [U]Ваша таблица в БД[/U]");
$posts = mysql_fetch_row($result);
// Находим общее число страниц
$total = intval(($posts - 1) / $num) + 1;
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
// Вычисляем начиная к какого номера
// следует выводить сообщения
$start = $page * $num - $num;
// Выбираем $num сообщений начиная с номера $start
$result = mysql_query("SELECT * FROM [U]Ваша таблица в БД[/U] LIMIT $start, $num");
[B][U]Тут писать ваш запрос к БД и всю часть страницы к той части страницы, где вы хотите поставить навигацию![/U][/B]
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 5 > 0) $page5left = ' <a href=index.php?page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
if($page - 4 > 0) $page4left = ' <a href=index.php?page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
if($page - 3 > 0) $page3left = ' <a href=index.php?page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
if($page - 2 > 0) $page2left = ' <a href=index.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href=index.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 5 <= $total) $page5right = ' | <a href=index.php?page='. ($page + 5) .'>'. ($page + 5) .'</a>';
if($page + 4 <= $total) $page4right = ' | <a href=index.php?page='. ($page + 4) .'>'. ($page + 4) .'</a>';
if($page + 3 <= $total) $page3right = ' | <a href=index.php?page='. ($page + 3) .'>'. ($page + 3) .'</a>';
if($page + 2 <= $total) $page2right = ' | <a href=index.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href=index.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
// Вывод меню если страниц больше одной
if ($total > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo "<div class=\"pstrnav\">";
echo "<p align='center'>".$pervpage."".$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right."".$nextpage."</p>";
echo "</div>";
}
?>
Все, ссылка на новость -
http://softtime.ru/info/articlephp.php?id_article=33 ! Я чуток изменил оригинал. Кстати, чтобы навигацию добавить на страницу с какими-то еще переменными, то тут
PHP код:
<a href=index.php?page='. ($page - 2) .'>
нужно поменять например, на
PHP код:
index.php?date='.$date.'&time='.$time.'&page='. ($page - 2) .'
!!!
Все, до свидания!....))
