boypush
@boypush
Geek

Почему не работает пагинатор php mysql?

Приветствую, подскажите пожалуйста у меня не работает пагинатор, предпологаю что из- за правил в .htaccess
Вот содержимое .htaccess
AddDefaultCharset windows-1251
DirectoryIndex index.php
RewriteEngine On
php_flag magic_quotes_gpc 0
php_flag magic_quotes_runtime 0
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]


#Запрещаем просмотр содержимого папки
Options All -Indexes

#Защищаем .htaccess файл
<files .htaccess>
order allow,deny
deny from all
</files>


# Главная
RewriteRule ^index.html$ index.php [L]

# Внешние страницы
RewriteRule ^news(/?)+$ index.php?page=news [L]
RewriteRule ^register(/?)+$ index.php?page=register [L]
RewriteRule ^login(/?)+$ index.php?page=login [L]
RewriteRule ^about(/?)+$ index.php?page=about [L]

# Аккаунт
RewriteRule ^account(/?)+$ index.php?page=account [L]
RewriteRule ^exit(/?)+$ index.php?page=exit [L]


Часть кода index.php
case "register": include_once 'page/registration.php'; break;
case "news": include_once 'page/news.php'; break;
и так далее...

Сам пагинатор:
<?
$num = 3;
$page = $_GET['page'];
$result00 = mysql_query("SELECT COUNT(*) FROM test");
$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 = mysql_query("SELECT * FROM test ORDER BY id DESC LIMIT $start, $num");
$row = mysql_fetch_array($query);
do 
{
	
	echo $row['title'];
	echo "<br/>";
	echo $row['text'];
	echo "<br/><br/>";
	
}
while($row = mysql_fetch_array($query))
	?>
<?
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=?page=1>Первая</a> | <a href=?page='. ($page - 1) .'>Предыдущая</a> | ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' | <a href=?page='. ($page + 1) .'>Следующая</a> | <a href=?page=' .$total. '>Последняя</a>';

// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 5 > 0) $page5left = ' <a href=?page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
if($page - 4 > 0) $page4left = ' <a href=?page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
if($page - 3 > 0) $page3left = ' <a href=?page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
if($page - 2 > 0) $page2left = ' <a href=?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href=?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';

if($page + 5 <= $total) $page5right = ' | <a href=?page='. ($page + 5) .'>'. ($page + 5) .'</a>';
if($page + 4 <= $total) $page4right = ' | <a href=?page='. ($page + 4) .'>'. ($page + 4) .'</a>';
if($page + 3 <= $total) $page3right = ' | <a href=?page='. ($page + 3) .'>'. ($page + 3) .'</a>';
if($page + 2 <= $total) $page2right = ' | <a href=?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href=?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>";
}
?>


Без htaccess и index.php работает, а с ними не хочет, помогите разобраться с велосипедом, заранее спасибо!
  • Вопрос задан
  • 193 просмотра
Пригласить эксперта
Ответы на вопрос 1
.htaccess пишет в $page название страницы. А потом Вы пытаетесь сделать из него номер страницы, т.е. число. Измените название второй переменной, напр. на $p или $page1.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы