[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Постраничная навигация
RUB
На сайте есть навигация "Архив" по месяцам декабрь 2009 и январь 2010, кликаешь на январь 2010, переходишь на страницу "view_data.php", на странице две заметки, перехожу по страничной навигации на вторую страницу, заметки отсутствуют, а url в браузере отображает http://localhost/priroda/view_date.php?date=2010-02&page=2, то есть браузер хочет показать заметку за февраль 2010 которого нет. Помогите разобраться и найти ошибку.

<?php include ("blocks/bd.php"); /*Соединяемся с базой данных*/
if (isset ($_GET['date'])) {$date = $_GET['date'];}
else
{
exit ("<p>Вы обратились к файлу без необходимых параметров. Проверьте адресную строку браузера</p>");
}
$date_title = $date;
$date_begin = $date;
$date++;
$date_end = $date;
$date_begin = $date_begin."-01";
$date_end = $date_end."-01";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>

<
meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<
title><?php echo "Заметки за $date_title"; ?></title>
<
link href="style.css" rel="stylesheet" type="text/css" />
</
head>

<
body>
<?php include("blocks/header.php")?>

<table width="960" border="0" align="center" cellpadding="0" cellspacing="0">

<
tr id="content">
<
td id="content_left" width="651" valign="top">

<?php
$result77 = mysql_query("SELECT str FROM options");
$myrow77 = mysql_fetch_array($result77);
$num = $myrow77["str"];
// Извлекаем из URL текущую страницу
@$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result00 = mysql_query("SELECT COUNT(*) FROM date ");
$temp = mysql_fetch_array($result00);
$posts = $temp[0];
// Находим общее число страниц
$total = (($posts - 1) / $num) + 1;
$total = intval($total);
// Определяем начало сообщений для текущей страницы
$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 date WHERE date > '$date_begin' AND date < '$date_end' ORDER BY date DESC LIMIT $start, $num",$db);
while ($myrow = mysql_fetch_array ($result))
{
printf ( "<div class='post'>
<div class='post_title'>%s
<div class='post_info'> Статья добавлена: %s</div>
</div>
<div class='post_body'> %s
<p> <a href='view_post.php?id=%s' style='font-size:12px; color:#FFFFFF; text-decoration:none'>%s</a></p>
</div>
<div class='post_comment'>Просмотров: %s</div></div>"
, $myrow["title"], $myrow["date"], $myrow["img"], $myrow["id"], $myrow["description"], $myrow["view"]);
}
?>
<?php

// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=view_date.php?date='.$date.'&page=1>Первая</a> | <a href=view_date.php?date='.$date.'&page='. ($page - 1) .'>Предыдущая</a> | ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' | <a href=view_date.php?date='.$date.'&page='. ($page + 1) .'>Следующая</a> | <a href=view_date.php?date='.$date.'&page=' .$total. '>Последняя</a>';

// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 5 > 0) $page5left = ' <a href=view_date.php?date='.$date.'&page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
if($page - 4 > 0) $page4left = ' <a href=view_date.php?date='.$date.'&page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
if($page - 3 > 0) $page3left = ' <a href=view_date.php?date='.$date.'&page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
if($page - 2 > 0) $page2left = ' <a href=view_date.php?date='.$date.'&page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href=view_date.php?date='.$date.'&page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';

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

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

if ($total > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo "<div style='margin-left: 30px;'>";
echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo "</div>";
}
?>
</td>
<?php include("blocks/right.php")?>
<?php
include("blocks/footer.php")?>
</body>
</
html>




Спустя 4 дня, 14 часов, 45 минут, 11 секунд (24.12.2009 - 17:31) cyberx написал(а):
RUB
это же в уроках попова? он же все объясняет

Спустя 41 минута, 48 секунд (24.12.2009 - 18:13) inpost написал(а):
Это из курса Попова, но какая-то часть вырезана, не хватает чего-то smile.gif

Спустя 1 час, 29 минут, 55 секунд (24.12.2009 - 19:43) glock18 написал(а):
тут надо вырезать минимум все, чтобы это можно было не считать индо-китайским кодом.

Спустя 3 часа, 51 минута, 19 секунд (24.12.2009 - 23:34) WhiteKnight написал(а):
Кстати тут была тема про пагинатор...
вот нашел: http://pyha.ru/articles/php/paginator/
читайте..... smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.