Как сделать адрес с номером страниц?

$num = 10;
$page = $_GET['page'];
$result00 = $pdo->prepare('SELECT COUNT(*) FROM post');
$result00->execute();
$temp = $result00->fetch(PDO::FETCH_LAZY);
$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;
$result0 = $pdo->prepare('SELECT * FROM post ORDER BY id DESC LIMIT '.$start.', '.$num.'');
$result0->execute();
while ($news = $result0->fetch(PDO::FETCH_LAZY)){
	бла бла бла
}

if ($page != 1) $pervpage = '<a href=index.php?page='. ($page - 1) .'>← Сюда</a>';
if ($page != 1) $first = '<a href=index.php?page=1>Первая</a>';

if ($page != $total) $nextpage = '<a href=index.php?page='. ($page + 1) .'>Туда →</a>';
if ($page != $total) $last = '<a href=index.php?page='. $total .'>Последняя</a>';

if ($total > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo '<div class="pages">Страница #'.$page.'</div>';
echo '<div class="page"><div class="page_left">'.$pervpage.'</div><div class="page_right">'.$nextpage.'</div></div>';
echo '<div class="first">'.$first.'</div><div class="last">'.$last.'</div>';
}

Страницы имеют адрес такого типа index.php?page=2, но такой адрес не оч. красив. Можно как-то сделать например такой site.com/page/2 ?
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 2
myfirepukan
@myfirepukan
Жарим поиск
Гуглите "роутинг", в простейшем случае из $_server извлекаете URL его разбираете и получаете цифру 2, делаете запрос к БД с id=2, отдаёте страницу. Всё.
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Если у вас apache, то при помощи mod_rewrite можно превратить адрес вида
example.com/page/2 в example.com/my.php?page=2

Ключевые слова: ЧПУ, mod_rewrite
Ответ написан
Ваш ответ на вопрос

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

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