Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не срабатывает поиск при обнаружении нескольких записей
 
 автор: designshadow   (14.04.2009 в 03:22)   письмо автору
 
 

Поиск работает в том случае, если найдено только одно значение, если больше одного , то данное условие не выполняется:
if (mysql_num_rows($result) > 0)
{
...
}
else
{
echo "<p>Error</p>";
exit ();
}

SQL запрос поиска:
$result = mysql_query("SELECT * FROM table WHERE MATCH(description) AGAINST('$search')",$db);

  Ответить  
 
 автор: Trianon   (14.04.2009 в 09:49)   письмо автору
 
   для: designshadow   (14.04.2009 в 03:22)
 

Неужели пишет <p>Error</p> ?

  Ответить  
 
 автор: designshadow   (14.04.2009 в 15:54)   письмо автору
 
   для: Trianon   (14.04.2009 в 09:49)
 

Да. Сейчас переделал на вот это: Информация по данному запросу не найдена.

else
{
echo "<p>Информация по данному запросу не найдена.</p>";
//exit ();
}

P.S. поиск работает в том случае, если поисковое значение встретилось только один раз, иначе - Информация по данному запросу не найдена.

  Ответить  
 
 автор: Trianon   (14.04.2009 в 15:57)   письмо автору
 
   для: designshadow   (14.04.2009 в 15:54)
 

значение должно встретиться менее чем в половине всех записей.
Иначе фильтр адекватности полнотестового поиска такой результат отсечет.

  Ответить  
 
 автор: designshadow   (14.04.2009 в 16:07)   письмо автору
 
   для: Trianon   (14.04.2009 в 15:57)
 

Ooooo,сработало!

А как можно реализовать ,если значение встречается более чем в половине?

  Ответить  
 
 автор: Trianon   (14.04.2009 в 16:13)   письмо автору
 
   для: designshadow   (14.04.2009 в 16:07)
 

Можно попробовать выполнить поиск в логическом режиме (IN BOOLEAN MODE) ( а не в натуральном) .

http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

  Ответить  
 
 автор: designshadow   (14.04.2009 в 18:40)   письмо автору
 
   для: Trianon   (14.04.2009 в 16:13)
 

прописал так AGAINST('$search' IN BOOLEAN MODE) всё заработало! Спасибо друг! :-)

  Ответить  
 
 автор: designshadow   (14.04.2009 в 22:57)   письмо автору
 
   для: Trianon   (14.04.2009 в 09:49)
 

А как реализовать, например я ввожу в поиск слово test, а в базе есть похожее слово tests, т.е. как сделать чтобы вывело tests при запросе test?

  Ответить  
 
 автор: Trianon   (14.04.2009 в 22:58)   письмо автору
 
   для: designshadow   (14.04.2009 в 22:57)
 

Может быть Вам не нужен полнотекстовый поиск?

  Ответить  
 
 автор: designshadow   (14.04.2009 в 23:12)   письмо автору
 
   для: Trianon   (14.04.2009 в 22:58)
 

У меня ищет скажем по описанию товара, а какая есть альтернатива?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования