Опубликовано: 15 августа 20169 г Добрый вечер. Не подскажете, есть ли для тройки хук, добавляющий в стандартный поиск функцию ajax - т.е. отображение результатов поиска наподобие live поиска, в маленьком окне без нажатия кнопки поиска? Как на этом сайте, к примеру. www.ivi.ru
Опубликовано: 20 сентября 20169 г Автор Подскажите, пожалуйста, как доработать sql-запрос, чтобы поиск производился только по первой букве слов? Например, ищу словосочетание "Медведь Плюшевый", ввожу в поле поиска букву "е" и мне выдается: "Медведь Плюшевый". А нужно, чтобы его можно было найти только по буквам "м" и "п"... Не подскажете? Изменено 20 сентября 20169 г пользователем Strategius
Опубликовано: 20 сентября 20169 г Автор Код, отвечающий за вывод результата: if( sizeof($searchStrings) == 1) { $searchSQL = mysql_query("SELECT * FROM ".$topics_table." WHERE approved='1' AND state!='link' AND forum_id IN ( $forum_ids ) AND title LIKE '%".$searchString."%' ORDER BY ".$sortby." DESC LIMIT ".$LIMIT); $total_results = mysql_num_rows(mysql_query("SELECT * FROM ".$topics_table." WHERE approved='1' AND state!='link' AND forum_id IN ( $forum_ids ) AND title LIKE '%".$searchString."%' ")); } if( sizeof($searchStrings) > 1) { $i=1; $searchSQL = "SELECT * FROM ".$topics_table." WHERE approved='1' AND state!='link' AND forum_id IN ( $forum_ids ) AND title LIKE '%".$searchStrings[0]."%' "; while($i < sizeof($searchStrings)) { $searchSQL .= " AND title LIKE '%".$searchStrings[$i]."%' "; $i++; } $total_results = mysql_num_rows(mysql_query($searchSQL)); $searchSQL .= " ORDER BY ".$sortby." DESC LIMIT ".$LIMIT; $searchSQL = @mysql_query($searchSQL); } Изменено 20 сентября 20169 г пользователем Strategius
Опубликовано: 21 сентября 20169 г AND title LIKE '%".$searchStrings[$i]."%'заменить на AND title REGEXP '[[:<:]]".preg_quote( $searchStrings[$i] )."' AND title LIKE '%".$searchString."%'заменить на AND title REGEXP '[[:<:]]".preg_quote( $searchString )."'
Опубликовано: 21 сентября 20169 г Автор Внес правки, но все равно почему-то не работает... Поиск выдает результаты по одной любой букве (не первой в словах), да и еще часть букв отсеклась и по ним поиск вообще не работает...
Опубликовано: 21 сентября 20169 г Автор На это? title REGEXP '[[:<:]]".preg_quote( $searchStrings[0] )."'Заменил, но тоже не работает... Изменено 21 сентября 20169 г пользователем Strategius
Опубликовано: 21 сентября 20169 г На всякий случай установите кодировку соединения с mysql после$als_select_db = mysql_select_db($INFO['sql_database'], $als_connect_db);добавить if($INFO['sql_charset']){ mysql_set_charset($INFO['sql_charset']); }
Опубликовано: 21 сентября 20169 г Автор Эффекта нет :( Даже без последней правки (и с ней тоже) выдает нулевой результат поиска... Может тогда просто ограничить запрос вводом хотя бы трех символов, чтобы облегчить задачу? Заодно и запрос к БД не будет таким тяжелым... Изменено 21 сентября 20169 г пользователем Strategius
Опубликовано: 21 сентября 20169 г Автор А как не подскажете, пожалуйста? Хотя это и не очень правильное решение, очень жалко, что по первым символам не работает :( В чем же все-таки проблема может быть?
Опубликовано: 21 сентября 20169 г Автор Добавил такой код в input: pattern='.{3,}' $html .= "<input type='text' pattern='.{3,}' placeholder='".$als_placeholder."' name='search_term' id='als_input' size='17' />";Но все равно результаты выдаются сразу после ввода первого символа... Изменено 21 сентября 20169 г пользователем Strategius
Опубликовано: 21 сентября 20169 г Для лайв поиска? $('#search_term').keyup(function(){ if(this.value.length >= 3){ page = 1; sendToSearch(page); } });
Опубликовано: 21 сентября 20169 г Автор Да, для лайв. Вообще перестало работать, не ищет с такой доработкой... Надо, чтобы искало после ввода трех символов, а теперь вообще не ищет(
Добрый вечер. Не подскажете, есть ли для тройки хук, добавляющий в стандартный поиск функцию ajax - т.е. отображение результатов поиска наподобие live поиска, в маленьком окне без нажатия кнопки поиска?
Как на этом сайте, к примеру. www.ivi.ru