Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте, пытаюсь на сайте поиск сделать, но не могу реализовать поиск по нескольким полям таблицы.
Использую такой запрос:
$query = "SELECT * FROM cat WHERE MATCH (title, name, name1, desc, text) AGAINST ('%".mysql_escape_string( $_POST['text'] )."%')";
выдает ошибку You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc, text) AGAINST ('%1М63%')' at line 1
Если убираю все поля в зпаросе кроме одного, то по этому полю ищет. Подскажите, как правильно?
Неактивен
desc и text- ключевые слова. При использовании в качестве имен столбцов (таблиц и т.д) их нужно брать в обратные кавычки, т.е. `desc` и `text`. А ещё лучше использовать нейтральные названия.
Неактивен
vasya написал:
desc и text- ключевые слова. При использовании в качестве имен столбцов (таблиц и т.д) их нужно брать в обратные кавычки, т.е. `desc` и `text`. А ещё лучше использовать нейтральные названия.
Спасибо огромное! Ошибка исчезла, вылезла вторая.
Can't find FULLTEXT index matching the column list
FULLTEXT полям присвоил...
ALTER TABLE `cat` ADD FULLTEXT (`title` , `name` , `name1` , `desc`, `text`);
Все, вопрос отпал, указал лишнее поле, которое не фуллтекст.
Спасибо за помощь!
Отредактированно andrey28 (16.11.2011 19:36:20)
Неактивен
Покажите результат выполнения show create table `cat`;
Неактивен
vasya написал:
Покажите результат выполнения show create table `cat`;
Видимо вместе писали, все решилось, указал лишнее поле. Сейчас поиск работает.
Неактивен