<?php
error_reporting(E_ALL);//показывать все ошибки
// соединение с базой данных
include ("../blocks/bd.php");
// Кол-во на страницы
$num = 2;
// Текущая страница
$page = isset($_GET['page'])?$_GET['page']:1;
//1 - значение по умолчанию, если такой параметр не передан.
// Если не существует в URL параметр CAT, то выводить основную страницу раздела "Новости"
if (!isset($_GET['cat']))
{
//здесь надо выводить главную страницу раздела новости
}
//***************************************************************************************
// Если существует в URL параметр CAT, то выводить постранично из категории
else
{
// Общее число сообщений
$row=mysql_fetch_assoc(mysql_query("SELECT count(*) as cnt FROM news where catid = '".intval($_GET['cat'])."'"));
if($row['cnt']) //Если параметр cat существует в БД
{
$cat=intval($_GET['cat']);
$posts=$row['cnt'];
// Общее число страниц
$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;
$result = mysql_query("SELECT * FROM news WHERE catid=$cat ORDER BY id desc LIMIT $start, $num");
while ( $postrow[] = mysql_fetch_array($result)) ;
for($i = 0; $i < $num; $i++)
{
echo "<table>
<tr>
<td ><p><a href='view_news.php?id=".$postrow[$i]["id"]."'>".$postrow[$i]["title"]."</a></p>
</td>
</tr>
</table>";
}
$pervpage='';
$nextpage='';
$page2left='';
$page1left='';
$page2right='';
$page1right='';
// Нужны ли стрелки назад
if ($page != 1) $pervpage = "<a href='./?page=1&cat=".($cat)."'><<</a>
<a href='./?page=".($page - 1)."&cat=".($cat)."'><</a> ";
// Нужны ли стрелки вперед
if ($page != $total) $nextpage =" <a href='./?page=".($page + 1)."&cat=".($cat)."'>></a>
<a href='./?page=".$total."&cat=". ($cat)."'>>></a>";
// Стр. с обоих краев
if($page - 2 > 0) $page2left ="<a href='./?page=".($page - 2)."&cat=".($cat)."'>".($page - 2)."</a>‌";
if($page - 1 > 0) $page1left = "<a href='./?page=".($page - 1)."&cat=".($cat)."'>".($page - 1)."</a>‌";
if($page + 2 <= $total) $page2right = "‌<a href='./?page=".($page + 2)."&cat=".($cat)."'>".($page + 2)."</a>";
if($page + 1 <= $total) $page1right = "‌<a href='./?page=".($page + 1)."&cat=".($cat)."'>".($page + 1)."</a>";
// Вывод
if(!empty($pervpage)) echo $pervpage;
if(!empty($page2left)) echo $page2left;
if(!empty($page1left)) echo $page1left;
echo '<b>'.$page.'</b>';
if(!empty($page1right)) echo $page1right;
if(!empty($page2right)) echo $page2right;
if(!empty($nextpage)) echo $nextpage;
}
else header('HTTP/1.0 404 Not Found');//Если передать в параметре cat идетификатор, для которого нет на самом деле раздела
}
?>