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

Форум MySQL

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

 

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

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

тема: поиск в PHP + MySQL
 
 автор: demon51085   (28.01.2009 в 00:59)   письмо автору
 
 

HELP!
Для тестирования создаю запрос к таблице "table" в которой в столбике "text" есть строчка со словом "слово".
$res = mysql_query("SELECT * FROM table WHERE MATCH text AGAINST ('слово')");
после чего в mysql_num_rows($result) попадает ноль, т.е. ничего не вытаскивается. Почему? Ведь там же есть!
При $res = mysql_query("SELECT * FROM table"); нормально вытаскивается!
В чём проблема? Может неправильный запрос?
(Денвер-3 вроде PHP v5.2.4, MySQL v5.0.45,)

  Ответить  
 
 автор: xx7   (28.01.2009 в 01:30)
 
   для: demon51085   (28.01.2009 в 00:59)
 

на первый взгляд так ;
должен быть создан FULLTEXT-индекс по которому поиск.
text зарезервированное слово можно взять в ``.
поиск ничего не вернёт , если 'слово' встречается в половиине рядов индексируемых столбцов.

и можно добавить if(!$res) echo mysql_error();

  Ответить  
 
 автор: demon51085   (28.01.2009 в 01:46)   письмо автору
 
   для: xx7   (28.01.2009 в 01:30)
 

FULLTEXT при этом создан.
Запрос проходит без ошибки.
Насчёт половины рядов... т.е. если у меня всего 2 строчки в таблице, то проблема может быть в этом?
PS. СПАСИБО! добавил третью строчку и всё заработало. Думал будет достаточно двух. Ещё раз спасибо за оперативность.

  Ответить  
 
 автор: Роман Помазанов   (15.02.2009 в 21:03)   письмо автору
 
   для: xx7   (28.01.2009 в 01:30)
 

Здравствуйте! У меня вопрос по близкой теме.
Я создал поиск по сайту с использованием конструкции:
$result = mysql_query ("SELECT * FROM data WHERE MATCH(text) AGAINST('$search')", $db);
Но при этом я получаю от сервера следующее:
Can't find FULLTEXT index matching the column list

Я пока новичок в этом деле и совершенно не знаю, что делать.
Я допускаю, что надо создать этот FULLTEXT-индекс, но не знаю как.
Пожалуйста, посоветуйте, как быть?

  Ответить  
 
 автор: cheops   (15.02.2009 в 22:34)   письмо автору
 
   для: Роман Помазанов   (15.02.2009 в 21:03)
 

Необходимо проиндексировать столбец text таблицы data индексом FULLTEXT - без этого полнотекстовый поиск работать не будет.

  Ответить  
 
 автор: Роман Помазанов   (16.02.2009 в 20:28)   письмо автору
 
   для: cheops   (15.02.2009 в 22:34)
 

А как это сделать конкретно? Может мой вопрос глупый, но я не знаю, как это делать.

  Ответить  
 
 автор: Trianon   (16.02.2009 в 23:18)   письмо автору
7.6 Кб
 
   для: Роман Помазанов   (16.02.2009 в 20:28)
 

правая кнопка [т] в phpMyAdmin (см.рис) - создание полнотекстового индекса.

  Ответить  
 
 автор: Роман Помазанов   (17.02.2009 в 08:21)   письмо автору
 
   для: Trianon   (16.02.2009 в 23:18)
 

Благодарю Вас. Проблема решена!

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

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