Не работает поиск

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

Модераторы: latteo
  1. kozax89

    kozax89 Постоялец

    Регистр.:
    12 июл 2009
    Сообщения:
    135
    Симпатии:
    4
    Странно сколько сайтов уже сделал все нормально было а тут такая фигня...

    PHP:
    $result mysql_query ("SELECT * FROM content WHERE MATCH `description` AGAINST ('$search')",$db);
    дает в результате 0, и даже выполняя в Phpmyadmin через sql запрос SELECT * FROM content WHERE MATCH `description` AGAINST ('Здравствуйте') возвращает MySQL returned an empty result set (i.e. zero rows). ( Query took 0.0466 sec )

    Для ячейки description поставил индекс fulltext как положено, вот только напрягает что Cardinality там 0 (на прошлых проектах она 1) - но не знаю как ее поменять... Испробовал все, заодно обнаружил что работающий раньше на старых сайтах запрос

    PHP:
    $result mysql_query ("SELECT * FROM table WHERE MATCH (field) AGAINST ('$search')",$db);
    не работает, пришлось менять методом тыка (field) на `field`...
     
  2. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    сделай
    PHP:
    echo "SELECT * FROM `table` WHERE MATCH (`field`) AGAINST ('$search')";
    и напиши что выводит
     
  3. kozax89

    kozax89 Постоялец

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

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    я знаю что выводит текстом, я хочу глянуть что вместо '$search' подставляется.
     
  5. kozax89

    kozax89 Постоялец

    Регистр.:
    12 июл 2009
    Сообщения:
    135
    Симпатии:
    4
    да все он праильно выводит - мою искомую фразу. Ты мне лучше подскажи - может ли не работать матч агэйнст если записей слишком мало? А то в другой таблице с 5 записями все работает, а в этой с 1 записью - не работает (добавить записей не могу, на работе сейчас.)
     
  6. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    скинь дамп свой таблицы, я у себя гляну. По идее MySQL без разницы в плане поиска сколько у тебя записей.
     
  7. kozax89

    kozax89 Постоялец

    Регистр.:
    12 июл 2009
    Сообщения:
    135
    Симпатии:
    4
    Вот те дамп этой таблицы, попробуй выборку сделать по description.

    А то у меня руки опускаются, магия какая-то....
     

    Вложения:

    • content.zip
      Размер файла:
      1,7 КБ
      Просмотров:
      2
  8. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    Так попробуй, у меня сработал поиск:
    SELECT * FROM `content` WHERE MATCH (`description`) AGAINST ('Good evening' IN BOOLEAN MODE)
     
    kozax89 нравится это.
  9. kozax89

    kozax89 Постоялец

    Регистр.:
    12 июл 2009
    Сообщения:
    135
    Симпатии:
    4
    Boolean mode :mad: Ппц, запарился с этим поиском, перепробовал такие мыслимые и не мыслимые способы, а об этом забыл... Странно только, почему без него не работает, на том же серве на других сайтах все норм...

    PS. Пробовал искать русские слова?

    Спасибо!
     
  10. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    Русские не пробовал, но теоретически ему без разницы какие символы искать, тем более если кодировка utf-8