Гибкий поиск по сайту.

Lestat621

Новичок
Пытаюсь доделать код.
Отдельно все идет норм, но когда объедению функции поиска, сортировки и постраничный вывод, выдает ошибку.

Сам код:
PHP:
       /* Функция гибкого поиска */
       function build_query($user_search, $sort){
          $search_query = "SELECT DATE_FORMAT(date,'%d.%m.%Y') AS date, tema, text, id FROM blog";
          $where_list = array();
          $clean_search = str_replace(',',' ', $user_search);
          $search_words = explode(' ', $clean_search);
          $final_search_words = array();
          if(count($search_words) > 0){
             foreach($search_words as $word){
                if(!empty($word)){
                   $final_search_words[] = $word;
                }
             }
          }
          if(count($final_search_words)){
             foreach($final_search_words as $word){
                $where_list[] = " text LIKE '%$word%'";
                }
             }
          $where_claus = implode(' OR ', $where_list);
          if(!empty($where_claus))
          {
             $search_query .= " WHERE $where_claus";
          }
          switch ($sort) {
          case 1:
            $search_query .= " ORDER BY title";
            break;
          case 2:
            $search_query .= " ORDER BY title DESC";
            break;
          default:
          }
          return $search_query;
       }
       /* Функция гибкого поиска */
       
       /* Функция сортировки*/
         function generate_sort_links($user_search, $sort) {
        $sort_links = '';
        switch ($sort) {
        case 1:
          $sort_links .= '<a href = "' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=1">
         Сортировка 1</a>';
          break;
        case 2:
          $sort_links .= '<a href = "' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=1">
         Сортировка 2</a>';
          break;
        default:
          $sort_links .= '<a href = "' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=1">
         Сортировка 3</a>';
        }
        return $sort_links;
      }
       /* Функция сортировки*/

       /* Навигационные гиперссылки*/
         function generate_page_links($user_search, $sort, $cur_page, $num_pages) {
          $page_links = '';
          if ($cur_page > 1) {
            $page_links .= '<a href="' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=' . $sort . '&page=' . ($cur_page - 1) . '"><-</a> ';
          }
          else {
            $page_links .= '<- ';
          }
          for ($i = 1; $i <= $num_pages; $i++) {
            if ($cur_page == $i) {
             $page_links .= ' ' . $i;
            }
            else {
             $page_links .= ' <a href="' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=' . $sort . '&page=' . $i . '"> ' . $i . '</a>';
            }
          }
          if ($cur_page < $num_pages) {
            $page_links .= ' <a href="' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=' . $sort . '&page=' . ($cur_page + 1) . '">-></a>';
          }
          else {
            $page_links .= ' ->';
          }

          return $page_links;
         }
       /* Навигационные гиперссылки*/
       
       // Далее отоброжение поиска вместе со всеми функциями
       $user_search = $_GET['usersearch'];
       $user_search = $_GET['sort'];
       $cur_page = isset($_GET['page']) ? $_GET['page'] : 1;
       
       echo generate_sort_links($user_search, $sort);
       
       require_once('connect.php');
       
       $query = build_query($user_search, $sort);
       $result = mysqli_query($query);
       $total = mysqli_num_rows($result);
       $num_pages = ceil($total / $results_per_page);
       $query =  $query . " LIMIT $skip, $results_per_page";
       $result = mysqli_query($query);
       
          while ($row = mysql_fetch_array($result)) {
             echo '<tr>';
             echo '<td>' . $row['id'] . '</td>';
             echo '<td>' . $row['tema'] . '</td>';
             echo '<td>' . $row['text'] . '</td>';
             echo '<td>' . $row['date'] . '</td>';
             echo '<td>' . 'Удалить' . '</td>';
             echo '<td>' . 'Редактировать' . '</td>';
             echo '</tr>';
          }
          echo '</table>';
          
       if ($num_pages > 1) {
          echo generate_page_links($user_search, $sort, $cur_page, $num_pages);
       }
 

Lestat621

Новичок
PHP:
Notice: Undefined index: sort in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\blog\admin\connect\search.php on line 101

Notice: Undefined variable: sort in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\blog\admin\connect\search.php on line 104
Сортировка 3
Notice: Undefined variable: sort in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\blog\admin\connect\search.php on line 108

Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\blog\admin\connect\search.php on line 109

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\blog\admin\connect\search.php on line 110

Notice: Undefined variable: results_per_page in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\blog\admin\connect\search.php on line 111

Warning: Division by zero in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\blog\admin\connect\search.php on line 111

Notice: Undefined variable: skip in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\blog\admin\connect\search.php on line 112

Notice: Undefined variable: results_per_page in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\blog\admin\connect\search.php on line 112

Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\blog\admin\connect\search.php on line 113

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\blog\admin\connect\search.php on line 115
 

Lestat621

Новичок
Как я понял все из за того что изначально нету переменных $sort, $cur_page, $num_pages
а, в функции поиска, они указаны.
А, вообще хз что уже думать, всю голову сломал)
 

HEm

Сетевой бобер
Это не ошибки. И они весьма информативны. Достаточно даже со словарем перевести.
 

Lestat621

Новичок
HEm, кому то достаточно, а я первую функцию делаю)))
Но, спс за инфу. Буду читать.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Теперь каждую ошибку, бережно переведя ее текст на великий и могучий, исправляем, ссылку для дебага тебе дал Редж.
 

Lestat621

Новичок
Проблема решена.
Если кому интересно могу, скинуть полный код поиска с постраничным выводом и функцией сортировки.
 
Сверху