Поиск через MATCH AGAINST

Статус
В этой теме нельзя размещать новые ответы.

kozax89

Постоялец
Регистрация
12 Июл 2009
Сообщения
135
Реакции
4
Есть код

PHP:
$result = mysql_query ("SELECT * FROM programsdb WHERE MATCH(longdesc, os) AGAINST('$searching' '$choose_os')  LIMIT $start, $num",$db);
$myrow = mysql_fetch_array($result);

должен выискивать все записи в которых в longdesc присутствует $searching и при этом в os находится $choose_os.

Выдает ошибку

Warning: mysql_fetch_array(:( supplied argument is not a valid MySQL result resource in бла/бла/бла/search.php on line 72

Подскажите как этого добиться...
 
скорей всего ошибка в AGAINST()

PHP:
$result = mysql_query ("SELECT * FROM programsdb WHERE MATCH(longdesc, os) AGAINST('$searching $choose_os')  LIMIT $start, $num",$db);
 
спасибо помогло
В смысле? :) Это же я тут вопрос задавал :)

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

Если непонятно трабл описал:
Нужно реализовать поиск по 2 параметрам, именно тут человек вводит название программы которую ищет и выбирает операционную систему. Как к этому сделать выборку из БД?
 
PHP:
$result = mysql_query ("SELECT * FROM programsdb WHERE 
os LIKE '%$choose_os%' and 
longdesc LIKE '%$searching%' LIMIT $start, $num",$db);
 
Спасибо.

А чем с технической стороны отличаеться LIKE от MATCH AGAINST?
 
MATCH AGAINST ищет по полям с FULLTEXT-index, также вычисляет ревалентность
если поиск происходит по 2 полям у них должен быть общий индекс, если по 1 - то индекс 1 поля

LIKE - простой шаблонный поиск по любым полям, из-за чего более предпочтителен для простых задач
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху