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

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`...
 
Странно сколько сайтов уже сделал все нормально было а тут такая фигня...

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`...
сделай
PHP:
echo "SELECT * FROM `table` WHERE MATCH (`field`) AGAINST ('$search')";
и напиши что выводит
 
выводит просто текстом SELECT...
 
да все он праильно выводит - мою искомую фразу. Ты мне лучше подскажи - может ли не работать матч агэйнст если записей слишком мало? А то в другой таблице с 5 записями все работает, а в этой с 1 записью - не работает (добавить записей не могу, на работе сейчас.)
 
да все он праильно выводит - мою искомую фразу. Ты мне лучше подскажи - может ли не работать матч агэйнст если записей слишком мало? А то в другой таблице с 5 записями все работает, а в этой с 1 записью - не работает (добавить записей не могу, на работе сейчас.)
скинь дамп свой таблицы, я у себя гляну. По идее MySQL без разницы в плане поиска сколько у тебя записей.
 
Вот те дамп этой таблицы, попробуй выборку сделать по description.

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

Вложения

  • content.zip
    1,7 KB · Просмотры: 2
Вот те дамп этой таблицы, попробуй выборку сделать по description.
А то у меня руки опускаются, магия какая-то....
Так попробуй, у меня сработал поиск:
SELECT * FROM `content` WHERE MATCH (`description`) AGAINST ('Good evening' IN BOOLEAN MODE)
 
Boolean mode :mad: Ппц, запарился с этим поиском, перепробовал такие мыслимые и не мыслимые способы, а об этом забыл... Странно только, почему без него не работает, на том же серве на других сайтах все норм...

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

Спасибо!
 
Русские не пробовал, но теоретически ему без разницы какие символы искать, тем более если кодировка utf-8
 
Назад
Сверху