Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Постраничная анвигация с ЧПУ
 
 автор: TetRiska   (02.08.2009 в 21:11)   письмо автору
 
 

Решил поставить постраничную навигацию с ЧПУ. У меня есть код этой постранички но без ЧПУ, вот пробую поставить, но при переходе по навигации у меня загружает данные главной странички О_о . Вот собственно выложу как было до внедрения постраничной навигации и с ней...Помогите довести до ума. Спасибо!

Без навигации...

<?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 0$page5left ' <a href='.DOMEN.'/catalog/page/'.($pg 5).'>'. ($pg 5) .'</a> | ';
if(
$pg 0$page4left ' <a href='.DOMEN.'/catalog/page/'.($pg 4).'>'. ($pg 4) .'</a> | ';
if(
$pg 0$page3left ' <a href='.DOMEN.'/catalog/page/'.($pg 3).'>'. ($pg 3) .'</a> | ';
if(
$pg 0$page2left ' <a href='.DOMEN.'/catalog/page/'.($pg 2).'>'. ($pg 2) .'</a> | ';
if(
$pg 0$page1left '<a href='.DOMEN.'/catalog/page/'.($pg 1).'>'. ($pg 1) .'</a> | ';

if(
$pg <= $total$page5right ' | <a href='.DOMEN.'/catalog/page/'.($pg 5).'>'. ($pg 5) .'</a>';
if(
$pg <= $total$page4right ' | <a href='.DOMEN.'/catalog/page/'.($pg 4).'>'. ($pg 4) .'</a>';
if(
$pg <= $total$page3right ' | <a href='.DOMEN.'/catalog/page/'.($pg 3).'>'. ($pg 3) .'</a>';
if(
$pg <= $total$page2right ' | <a href='.DOMEN.'/catalog/page/'.($pg 2).'>'. ($pg 2) .'</a>';
if(
$pg <= $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   (03.08.2009 в 00:31)   письмо автору
 
   для: TetRiska   (02.08.2009 в 21:11)
 

Нет желающих помочь?

  Ответить  
 
 автор: DEM   (03.08.2009 в 03:44)   письмо автору
 
   для: TetRiska   (02.08.2009 в 21:11)
 

Если честно, то ваш ЧПУ довольно странный... ведь это расшифровывается, как ЧЕЛОВЕКОПОНЯТНЫЕ ССЫЛКИ, а что можно понять из ссылки вида site.ru/catalog/page/1 ???

А что у вас имено за проблема? Если пойти по ссылке вида site.ru/catalog/page/1, то он выводит на главную страницу или имено если перейти по ссылке (может он адрес меняет?

ЗЫ.а у вас стоит "RewriteEngine On" в .htaccess ?

  Ответить  
 
 автор: TetRiska   (03.08.2009 в 15:43)   письмо автору
 
   для: DEM   (03.08.2009 в 03:44)
 

site.ru/catalog/page/1 - первая страница каталога, что тут не понятного?

site.ru/catalog/ - выводит каталог

Перехожу по навигации site.ru/catalog/page/1 - выводит информацию главной страницы =\

"RewriteEngine On" естественно есть

  Ответить  
 
 автор: TetRiska   (03.08.2009 в 20:33)   письмо автору
445 Кб
 
   для: TetRiska   (03.08.2009 в 15:43)
 

Прикреплю дему чтобы было видно переход и адресную строку.

  Ответить  
 
 автор: Trianon   (03.08.2009 в 21:10)   письмо автору
 
   для: TetRiska   (03.08.2009 в 20:33)
 

там .mp4 . Это как?

  Ответить  
 
 автор: TetRiska   (04.08.2009 в 00:50)   письмо автору
 
   для: Trianon   (03.08.2009 в 21:10)
 

демо ролик снял той проблемы с которой столкнулся

  Ответить  
 
 автор: Рома   (04.08.2009 в 07:11)   письмо автору
 
   для: TetRiska   (02.08.2009 в 21:11)
 

>?page=catalog&page=1

Сначала вы присваиваете переменной page значение "catalog", затем ей же значение "1"

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования