mysql — проблема с написанием PHP-кода в поисковике

Попытка создать нумерацию страниц с помощью поискового запроса. Все работает нормально, здесь возникает ошибка, я не могу использовать $page искать.
Хотите вот так в браузере:

search.php?page=what+i+search where it equals to searched query

Код работает правильно (без запроса):

for ($b=1;$b<=$a;$b++)
{
?><a href="search.php?page=<?php echo $b; ?>" style="text-decoration:none"><?php echo $b." ";?></a> <?php
}
?>

Попробовал вот так:

for ($b=1;$b<=$a;$b++)
echo " <a href='search.php?page=“.stripslashes($page).”'> </a>";
?>

а вот так:

for ($b=1;$b<=$a;$b++)
echo " <a href='search.php?page=$page&submit=$b'> </a>";
?>

Вот $page это имя в простой HTML-форме, см .:

<form action="search.php" method="GET">
<b>Enter Search Term:</b> <input type="text" name="page" >
<br>
<input type="submit" value="Search">
</form>

Пожалуйста, помогите, я хочу включить поисковый запрос в нумерации страниц.

0

Решение

Используйте встроенную функцию PHP UrlEncode правильно закодировать значение $ page.

В качестве альтернативы вы можете использовать http_build_query построить строку запроса динамически:

$searchTerm = 'foo bar'; // it can be empty

$queryData = $searchTerm ? ['search' => $searchTerm] : [];

for ($i = 1; $i <= $maxPages; $i++) {
$queryData['page'] = $i;
$href = 'search.php?' . http_build_query($queryData);
echo " <a href='$href'>$i</a>";
}
1

Другие решения

Есть две переменные, которые вам нужно отслеживать:

  • На какой странице вы сейчас находитесь
  • Поисковый термин

Это означает, что ваш окончательный URL должен выглядеть примерно так:

search.php?search=words&page=2

Если вы перебираете $_GET переменные, вы увидите записи для обоих $_GET['search'] а также $_GET['page'], Ваш код должен также иметь что-то, что определяет страницу 1 если он не установлен.

Ваша форма может остаться прежней. Тем не менее, при создании ссылок на страницы, вы должны сделать следующее:

for($p=1;$p<=$maxPages;$p++) {
echo '<a href="search.php?search=';
echo urlencode($_GET['search']);  // urlencode() escapes spaces and other special characters
echo '&page=' . $p;
echo '">' . $p . '</a>';
}
0

По вопросам рекламы [email protected]