Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как сделать пагинацию в поиске

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
AkudJEE
Отправлено: 16 Января, 2013 - 17:38:13
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Янв. 2012  
Откуда: Уфа


Помог: 0 раз(а)




Всем привет. У меня есть код вывода результата поиска, при первом запросе выводится то количество страниц, которое соответствует запросу. Но при нажатии на следующую страницу выводятся уже все данные из БД. Я так понимаю запрос должен каждый раз повторяться при нажатии на номер страницы. Каким образом это можно сделать? Вот код:
PHP:
скопировать код в буфер обмена
  1.  <?PHP
  2.  if (isset($_POST['submit_s']))
  3.  {
  4.  $submit_s = $_POST['submit_s'];
  5.  }
  6.  
  7.  if (isset($_POST['search']))
  8.  {
  9.  $search = $_POST['search'];
  10.  }
  11.  
  12.  if (isset($submit_s))
  13.  {
  14.  
  15.  if (empty($search) or strlen($search) < 3)
  16.  {
  17.  exit ("<p>Поисковый запрос не введен, либо он менее 3-х символов.</p>");
  18.  }
  19.  
  20.  $search = trim($search);
  21.  $search = stripslashes($search);
  22.  $search = htmlspecialchars($search);
  23.  
  24.  }
  25.  
  26.  /*else
  27.  {
  28.  exit("<p>Для того чтобы что то найти, необходимо что то ввести ;D.</p>");
  29.  }*/
  30.  
  31.  ?>
  32.  <?PHP
  33. //соединение с базой данных при помощи функции mysql_connect()
  34.   //в аргументах функции укажите имя сервера, логин и пароль.
  35.   $db = mysql_connect("127.0.0.1","root","");
  36.   //функция mysql_select_db() выбирает текущую
  37.   //базу данных с именем "komtet_test"
  38.   mysql_select_db("db_name" ,$db);
  39. mysql_query("SET NAMES 'utf8'");
  40. mysql_query("SET CHARACTER SET 'utf8'");
  41.   //функция mysql_query() выполняет запрос на выборку данных
  42.   //результирующий набор данных хранится в переменной $sql
  43.  
  44.         /*$result = mysql_query("SELECT COUNT(tags) AS count from table_name WHERE  `tags` LIKE '%".$search."%' ORDER BY tags DESC");
  45. $row = mysql_fetch_assoc($result);
  46. echo $row['count'];
  47. $rows_max = $row['count'];*/
  48.  
  49. $query =  "SELECT * FROM `table_name` WHERE  `tags` LIKE '%".$search."%' ORDER BY tags DESC";
  50. $result = mysql_query($query) or die("Invalid query: " . mysql_error());
  51.  
  52. $rows_max = mysql_num_rows($result); // Сколько всего новостей у нас в базе
  53. $show_pages = 4; // Сколько новостей покажем пользователю
  54.      
  55.       $this_page = filter_var($_GET['page'], FILTER_SANITIZE_NUMBER_INT); // Номер текущей страницы
  56.     // (По полезнейшей функции filter_var() - курим мануал)
  57.      
  58.     if ($this_page)
  59.     {
  60.             $offset = (($show_pages * $this_page) - $show_pages);
  61.     }
  62.     else
  63.     {
  64.             $this_page = 1; // Ставим в единицу (первая страница) если не передан параметр $_GET['page']
  65.             $offset = 0;
  66.     }
  67.      
  68.     // Запиливаем собственно, панельку со ссылками на страницы, если нужна пагинация
  69.     if ($rows_max > $show_pages)
  70.     {
  71.            $r = 1;
  72.            while ($r <= ceil($rows_max/$show_pages))
  73.            {
  74.                if ($r != $this_page)
  75.                {          
  76.                     echo '<a href="'.$search.'?page=' . $r . '" title="Перейти на страницу '.$r.'">'.$r.'</a>';
  77.                }
  78.                else
  79.                {
  80.                    echo '<b>' . $r . '</b>'; // Если это текущая страница - то ссылка на саму себя не нужна
  81.                 }
  82.                 $r++;      
  83.            }
  84.     }
  85.        
  86.  
  87.   echo '<div class="body list"><div class="post"><h2>Результаты:'. $search.'</h2></div><div class="thumb_grid">';
  88.    /*SELECT COUNT(id) AS count from table_name WHERE  `tags` LIKE '%".$search."%' ORDER BY tags DESC*/  
  89.     $query_limited = "SELECT * from `table_name` WHERE  `tags` LIKE '%".$search."%' ORDER BY `tags` DESC LIMIT $offset, $show_pages";
  90.     $final_result = mysql_query($query_limited);
  91.  
  92.     while ($row = mysql_fetch_assoc($final_result)) {  
  93.  
  94.                   $row["tags"]=str_replace(', ',',',$row["tags"]);  
  95.                  $category = substr(strrchr($row["tags"], ','), 1);  
  96.                 echo '<div rel="'.$row["id"].'" class="thumb">
  97.    <a href="/wallpaper/_w'.$row["id"].'.html" title="'.$row["name"].'" rel="permalink">
  98.                <img src="/user-content/uploads/wall/thumb/'.$row["img"].'" alt="'.$row["tags"].'"/></a>
  99.                                 <div class="size_wall">'.$row["size"].'</div><div class="tags"><a href="/category/'.$category.'/">'.$category.'</a></div>
  100.        </div>  
  101.        ';}
  102.                  printf (' </div></div>');
  103.  
  104.  printf ('<div class="clear"></div>');
  105.    
  106.     ?>
 
 Top
Denkill
Отправлено: 17 Января, 2013 - 08:19:21
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




Этот топик что то типо твоей проблеме
http://forum.php.su/topic.php?fo...58343#1358258343


-----
Хо-Хо-Хо
 
 Top
AkudJEE
Отправлено: 19 Января, 2013 - 19:42:19
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Янв. 2012  
Откуда: Уфа


Помог: 0 раз(а)




В этом топике нет решения на мой вопрос. Подскажите пожалуйста, как это реализовать.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB