[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: постраничная навигация
albash1987
Добрый день. Я абсолютный новичок в php, сильно не пинайте. Суть вопроса в постраничной навигации, собственно я ее сделал на половину, но из-за одного нюанса дальше догнать не могу. Собственно есть две таблицы, товары и категории, я вывел товары определенной категории на одну страницу, но поскольку их будет слишком много то без навигации не обойтись, в этом и проблема. Тут функция посредством который вывожу определенную категорию товаров на одну страницу.
       function get_cat_products($cat)
{
db_connect();

$num = 2;
$page = $_GET['page'];
$result00 = mysql_query("SELECT COUNT(*) FROM products WHERE cat='$cat'");
$temp = mysql_fetch_array($result00);
$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;


$query = "SELECT * FROM products WHERE cat='$cat' ORDER BY id DESC LIMIT $start, $num";

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

// Находим две ближайшие станицы с обоих краев, если они есть
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 $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo "</div>";
}
?>

Собственно на месте данных ссылок я должен прописать свои.
Суть в том что я не могу просто так это сделать, поскольку ссылки на страницу где формируются продукты из категории происходит по такому принципу.
 <?
$categories = get_cat();
foreach($categories as $item):
?>
<li><a href='index.php?view=cat&id=<?=$item['cat_id'];?>'><span><?=$item['name'];?></span></a></li>
<?endforeach;?>

подскажите как быть, понимаю что это легко, но уже всю голову сломал.
Быстрый ответ:

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