AkudJEE
Новичок
Всем привет. У меня есть код вывода результата поиска, при первом запросе выводится то количество страниц, которое соответствует запросу. Но при нажатии на следующую страницу выводятся уже все данные из БД. Я так понимаю запрос должен каждый раз повторяться при нажатии на номер страницы. Каким образом это можно сделать? Вот код:
PHP:
<?php
if (isset($_POST['submit_s']))
{
$submit_s = $_POST['submit_s'];
}
if (isset($_POST['search']))
{
$search = $_POST['search'];
}
if (isset($submit_s))
{
if (empty($search) or strlen($search) < 3)
{
exit ("<p>Поисковый запрос не введен, либо он менее 3-х символов.</p>");
}
$search = trim($search);
$search = stripslashes($search);
$search = htmlspecialchars($search);
}
/*else
{
exit("<p>Для того чтобы что то найти, необходимо что то ввести ;D.</p>");
}*/
?>
<?php
//соединение с базой данных при помощи функции mysql_connect()
//в аргументах функции укажите имя сервера, логин и пароль.
$db = mysql_connect("127.0.0.1","root","");
//функция mysql_select_db() выбирает текущую
//базу данных с именем "komtet_test"
mysql_select_db("db_name" ,$db);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
//функция mysql_query() выполняет запрос на выборку данных
//результирующий набор данных хранится в переменной $sql
/*$result = mysql_query("SELECT COUNT(tags) AS count from table_name WHERE `tags` LIKE '%".$search."%' ORDER BY tags DESC");
$row = mysql_fetch_assoc($result);
echo $row['count'];
$rows_max = $row['count'];*/
$query = "SELECT * FROM `table_name` WHERE `tags` LIKE '%".$search."%' ORDER BY tags DESC";
$result = mysql_query($query) or die("Invalid query: " . mysql_error());
$rows_max = mysql_num_rows($result); // Сколько всего новостей у нас в базе
$show_pages = 4; // Сколько новостей покажем пользователю
$this_page = filter_var($_GET['page'], FILTER_SANITIZE_NUMBER_INT); // Номер текущей страницы
// (По полезнейшей функции filter_var() - курим мануал)
if ($this_page)
{
$offset = (($show_pages * $this_page) - $show_pages);
}
else
{
$this_page = 1; // Ставим в единицу (первая страница) если не передан параметр $_GET['page']
$offset = 0;
}
// Запиливаем собственно, панельку со ссылками на страницы, если нужна пагинация
if ($rows_max > $show_pages)
{
$r = 1;
while ($r <= ceil($rows_max/$show_pages))
{
if ($r != $this_page)
{
echo '<a href="'.$search.'?page=' . $r . '" title="Перейти на страницу '.$r.'">'.$r.'</a>';
}
else
{
echo '<b>' . $r . '</b>'; // Если это текущая страница - то ссылка на саму себя не нужна
}
$r++;
}
}
echo '<div class="body list"><div class="post"><h2>Результаты:'. $search.'</h2></div><div class="thumb_grid">';
/*SELECT COUNT(id) AS count from table_name WHERE `tags` LIKE '%".$search."%' ORDER BY tags DESC*/
$query_limited = "SELECT * from `table_name` WHERE `tags` LIKE '%".$search."%' ORDER BY `tags` DESC LIMIT $offset, $show_pages";
$final_result = mysql_query($query_limited);
while ($row = mysql_fetch_assoc($final_result)) {
$row["tags"]=str_replace(', ',',',$row["tags"]);
$category = substr(strrchr($row["tags"], ','), 1);
echo '<div rel="'.$row["id"].'" class="thumb">
<a href="/wallpaper/_w'.$row["id"].'.html" title="'.$row["name"].'" rel="permalink">
<img src="/user-content/uploads/wall/thumb/'.$row["img"].'" alt="'.$row["tags"].'"/></a>
<div class="size_wall">'.$row["size"].'</div><div class="tags"><a href="/category/'.$category.'/">'.$category.'</a></div>
</div>
';}
printf (' </div></div>');
printf ('<div class="clear"></div>');
?>