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

Тема в разделе "PHP", создана пользователем kozax89, 31 авг 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. kozax89

    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

    Подскажите как этого добиться...
     
  2. myweb

    myweb Среда обитания WEB

    Регистр.:
    10 сен 2007
    Сообщения:
    539
    Симпатии:
    246
    скорей всего ошибка в AGAINST()

    PHP:

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

     
  3. kozax89

    kozax89 Постоялец

    Регистр.:
    12 июл 2009
    Сообщения:
    135
    Симпатии:
    4
    В смысле? :) Это же я тут вопрос задавал :)

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

    kozax89 Постоялец

    Регистр.:
    12 июл 2009
    Сообщения:
    135
    Симпатии:
    4
    Никто не подскажет? o_O

    Если непонятно трабл описал:
    Нужно реализовать поиск по 2 параметрам, именно тут человек вводит название программы которую ищет и выбирает операционную систему. Как к этому сделать выборку из БД?
     
  5. myweb

    myweb Среда обитания WEB

    Регистр.:
    10 сен 2007
    Сообщения:
    539
    Симпатии:
    246
    PHP:
    $result mysql_query ("SELECT * FROM programsdb WHERE 
    os LIKE '%
    $choose_os%' and 
    longdesc LIKE '%
    $searching%' LIMIT $start$num",$db);
     
    kozax89 нравится это.
  6. kozax89

    kozax89 Постоялец

    Регистр.:
    12 июл 2009
    Сообщения:
    135
    Симпатии:
    4
    Спасибо.

    А чем с технической стороны отличаеться LIKE от MATCH AGAINST?
     
  7. pitkina

    pitkina

    Регистр.:
    1 апр 2007
    Сообщения:
    253
    Симпатии:
    176
    MATCH AGAINST ищет по полям с FULLTEXT-index, также вычисляет ревалентность
    если поиск происходит по 2 полям у них должен быть общий индекс, если по 1 - то индекс 1 поля

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