|
|
|
| Решил поставить постраничную навигацию с ЧПУ. У меня есть код этой постранички но без ЧПУ, вот пробую поставить, но при переходе по навигации у меня загружает данные главной странички О_о . Вот собственно выложу как было до внедрения постраничной навигации и с ней...Помогите довести до ума. Спасибо!
Без навигации...
<?php if(empty($_GET['id']))
{
///////////////////////////////////Вывод каталога/////////////////////////////////
$res = mysql_query("SELECT * FROM `".PREFIX."catalog` GROUP BY description ASC")
or die ("Ошибка запроса №1 : catalog/index.php" . mysql_error());
$catalog .= "<tr>";
$temp=0;
while($catrow = mysql_fetch_assoc($res))
{
$temp++;
$catalog .= "<td>";
$catalog .= "<div align='center' style='margin-top:30px'><a href='".DOMEN."/catalog/category/".$catrow['id']."'>
<img border='1' src='".DOMEN."".$catrow['photo']."' title='".$catrow['description']."' /></a></div>";
$catalog .= "<div align='center'><a href='".DOMEN."/catalog/category/".$catrow['id']."'>
".$catrow['description']."</a></div>";
$catalog .= "</td>";
if($temp%3==0) $catalog .= "</tr><tr>";
}
$catalog .= "</tr>";
//////////////////////////////////////////////////////////////
}
else
{
/////////////Вывод подкаталога//////////
...................
////////////////////////////////////////////////////////
} ?>
|
С навигацией...
<?php if(empty($_GET['id']))
{
//////////////////////////////////////////////////начало навигации////////////////////////////////////////////////
$num = 6;
// Извлекаем из URL текущую страницу
if(isset($_GET['pg'])) $pg = $_GET['pg'];
else $pg = 1;
// Определяем общее число сообщений в базе данных
$res22 = mysql_query("SELECT COUNT(*) FROM `".PREFIX."catalog`")
or die ("Ошибка запроса №22 : catalog/index.php" . mysql_error());
$catrow22 = mysql_fetch_array($res22);
$posts = $catrow22[0];
// Находим общее число страниц
$total = (($posts - 1) / $num) + 1;
$total = intval($total);
// Определяем начало сообщений для текущей страницы
$pg = intval($pg);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($pg) or $pg < 0) $pg = 1;
if($pg > $total) $pg = $total;
// Вычисляем начиная с какого номера
// следует выводить сообщения
$start = $pg * $num - $num;
// Выбираем $num сообщений начиная с номера $start
/////////////////////////////////////////////////////////
////////////////////Вывод каталога////////////////////
$res = mysql_query("SELECT * FROM `".PREFIX."catalog` GROUP BY description ASC LIMIT $start, $num")
or die ("Ошибка запроса №1 : catalog/index.php" . mysql_error());
$catalog .= "<tr>";
$temp=0;
while($catrow = mysql_fetch_assoc($res))
{
$temp++;
$catalog .= "<td>";
$catalog .= "<div align='center' style='margin-top:30px'><a href='".DOMEN."/catalog/category/".$catrow['id']."'>
<img border='1' src='".DOMEN."".$catrow['photo']."' title='".$catrow['description']."' /></a></div>";
$catalog .= "<div align='center'><a href='".DOMEN."/catalog/category/".$catrow['id']."'>
".$catrow['description']."</a></div>";
$catalog .= "</td>";
if($temp%3==0) $catalog .= "</tr><tr>";
}
$catalog .= "</tr>";
//////////////////////////////////////////////////
///////продолжение навигации////////////
// Проверяем нужны ли стрелки назад
if ($pg != 1) $pervpage = '<a href='.DOMEN.'/catalog/page/1>
Первая</a> | <a href='.DOMEN.'/catalog/page/'.($pg - 1).'>Предыдущая</a> | ';
// Проверяем нужны ли стрелки вперед
if ($pg != $total) $nextpage = ' | <a href='.DOMEN.'/catalog/page/'.($pg + 1).'>
Следующая</a> | <a href='.DOMEN.'/catalog/page/'.$total.'>Последняя</a>';
// Находим две ближайшие станицы с обоих краев, если они есть
if($pg - 5 > 0) $page5left = ' <a href='.DOMEN.'/catalog/page/'.($pg - 5).'>'. ($pg - 5) .'</a> | ';
if($pg - 4 > 0) $page4left = ' <a href='.DOMEN.'/catalog/page/'.($pg - 4).'>'. ($pg - 4) .'</a> | ';
if($pg - 3 > 0) $page3left = ' <a href='.DOMEN.'/catalog/page/'.($pg - 3).'>'. ($pg - 3) .'</a> | ';
if($pg - 2 > 0) $page2left = ' <a href='.DOMEN.'/catalog/page/'.($pg - 2).'>'. ($pg - 2) .'</a> | ';
if($pg - 1 > 0) $page1left = '<a href='.DOMEN.'/catalog/page/'.($pg - 1).'>'. ($pg - 1) .'</a> | ';
if($pg + 5 <= $total) $page5right = ' | <a href='.DOMEN.'/catalog/page/'.($pg + 5).'>'. ($pg + 5) .'</a>';
if($pg + 4 <= $total) $page4right = ' | <a href='.DOMEN.'/catalog/page/'.($pg + 4).'>'. ($pg + 4) .'</a>';
if($pg + 3 <= $total) $page3right = ' | <a href='.DOMEN.'/catalog/page/'.($pg + 3).'>'. ($pg + 3) .'</a>';
if($pg + 2 <= $total) $page2right = ' | <a href='.DOMEN.'/catalog/page/'.($pg + 2).'>'. ($pg + 2) .'</a>';
if($pg + 1 <= $total) $page1right = ' | <a href='.DOMEN.'/catalog/page/'.($pg + 1).'>'. ($pg + 1) .'</a>';
// Вывод меню если страниц больше одной
if ($total > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
$navigate .= "<br>";
$navigate .= "<div align='center' class=\"pstrnav\">";
$navigate .= $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$pg.'</b>'
.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
$navigate .= "</div>";
}
//////////////////////////////////////////////////
}
else
{
///////////Вывод подкаталога////
...................
///////////////////////////////////////
} ?>
|
Реврайт...
RewriteRule ^catalog$ index.php?page=catalog
RewriteRule ^catalog/page/([0-9]+)$ index.php?page=catalog&page=1&pg=$1
RewriteRule ^catalog/category/([0-9]+)$ index.php?page=catalog&category=1&id=$1
|
| |
|
|
|
|
|
|
|
для: TetRiska
(02.08.2009 в 21:11)
| | Нет желающих помочь? | |
|
|
|
|
|
|
|
для: TetRiska
(02.08.2009 в 21:11)
| | Если честно, то ваш ЧПУ довольно странный... ведь это расшифровывается, как ЧЕЛОВЕКОПОНЯТНЫЕ ССЫЛКИ, а что можно понять из ссылки вида site.ru/catalog/page/1 ???
А что у вас имено за проблема? Если пойти по ссылке вида site.ru/catalog/page/1, то он выводит на главную страницу или имено если перейти по ссылке (может он адрес меняет?
ЗЫ.а у вас стоит "RewriteEngine On" в .htaccess ? | |
|
|
|
|
|
|
|
для: DEM
(03.08.2009 в 03:44)
| | site.ru/catalog/page/1 - первая страница каталога, что тут не понятного?
site.ru/catalog/ - выводит каталог
Перехожу по навигации site.ru/catalog/page/1 - выводит информацию главной страницы =\
"RewriteEngine On" естественно есть | |
|
|
|
|
 445 Кб |
|
|
для: TetRiska
(03.08.2009 в 15:43)
| | Прикреплю дему чтобы было видно переход и адресную строку. | |
|
|
|
|
|
|
|
для: TetRiska
(03.08.2009 в 20:33)
| | там .mp4 . Это как? | |
|
|
|
|
|
|
|
для: Trianon
(03.08.2009 в 21:10)
| | демо ролик снял той проблемы с которой столкнулся | |
|
|
|
|
|
|
|
для: TetRiska
(02.08.2009 в 21:11)
| | >?page=catalog&page=1
Сначала вы присваиваете переменной page значение "catalog", затем ей же значение "1" | |
|
|
|