Хоть стыдно, но признаюсь - делал сайт по урокам Попова. Теперь читаю книги, смотрю уроки от linda.com и стараюсь по возможности этот сайт улучшить, но знаний все равно катастрофически не хватает. Код внизу должен выводить статьи за определенный месяц, если статей большей, чем пять, они должны выводиться на нескольких страницах. Беда в том, что когда пытаешься перейти с первой на вторую страницу, показывает данные не за нужный месяц, а за следующий. Надеюсь, что будут не только издевки в стиле: "Как мне надоели эти быдлокодеры Поповские! Почитай Котерова, учи PHP по нормальным учебникам, а потом уже начинай сайты писать!", но и реальная помощь. Заранее спасибо.
<?php require_once("../includes/database.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";
$result88 = mysql_query("SELECT str FROM options", $db);
$myrow88 = mysql_fetch_assoc($result88);
$num = $myrow88["str"];
@$page = $_GET['page'];
$result99 = mysql_query("SELECT COUNT(*) FROM data WHERE secret=0 AND date>'$date_begin' AND date<'$date_end'");
$temp = mysql_fetch_array($result99);
$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;
$result = mysql_query("SELECT id, title, description, date, author, mini_img, view, rating, q_vote FROM data WHERE secret=0 AND date>'$date_begin' AND date<'$date_end' ORDER BY id LIMIT $start, $num",$db);
if (!$result)
{
echo "<p>Запрос не может быть выполнен. Сообщите об ошибке администратору. <br><strong>Код ошибки:</strong></p>";
exit (mysql_error ());
}
if (mysql_num_rows ($result) > 0)
{
$myrow = mysql_fetch_assoc ($result);
do
{
$r = $myrow["rating"]/$myrow["q_vote"];
$r = intval($r);
printf ("<div class='post_intr'><div class='part_of_intr'><p class='post_name'><img class='mini' align='left' src='%s'><a href = 'view_post.php?id=%s'>%s</a></p>
<p class='post_adds'>Дата добавления: %s</p>
<p class='post_adds'>Автор статьи: %s</p></div>
<div id='inside_intr_p'><p>%s</p></div><p class='post_view'>Просмотров: %s Рейтинг: <img src='img/%s.png'></p></div>",
$myrow['mini_img'], $myrow['id'], $myrow['title'], $myrow['date'], $myrow['author'], $myrow['description'], $myrow['view'], $r);
}
while ($myrow = mysql_fetch_assoc ($result));
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 + 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 class=\"pstrnav\">";
echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo "</div>";
}
}
else
{
echo "<p>Информация по запросу не может быть извлечена. В таблице нет записе-е-е-й.</p>";
exit ();
}
?>