Forum Webscript.Ru
Общие => Базы данных => Тема начата: NР от 11 Марта 2004, 16:25:40
-
Всем привет!
Делаю поиск по базе на PHP и Mysql.
Поиск с несколькими условиями, но некоторые условия (судя по результатам) база упускает. В этом запросе результаты не учитывают условие (id_cat = \'241\') or (id_cat = \'240\') or (id_cat = \'242\') or (id_cat = \'243\')
$query = "SELECT id, notice, price, name, descr_, picture, path, author, publishing FROM `picture` where visible <>1 and (id_cat = \'241\') or (id_cat = \'240\') or (id_cat = \'242\') or (id_cat = \'243\') and (name regexp \'$key_word\') or
(author regexp \'$key_word\') or (format regexp \'$key_word\') or
(descr regexp \'$key_word\') ORDER BY name LIMIT $first, 15";
Я не очень хорошо знаю синтаксис SQL, покопался в инете по таким запросам, но ничего н нашел.
Поэтому спрашиваю у вас, как правильно написать этот запрос:
Выбрать id, notice, price, name, descr_, picture, path, author, publishing из таблицы picture, где visible не равно ноль и (id_cat = 241 или id_cat = 240 или id_cat = 242 или id_cat = 243) и (name regexp \'$key_word\') or
(author regexp \'$key_word\') or (format regexp \'$key_word\') or
(descr regexp \'$key_word\')
Спасибо!
-
NР:
(id_cat = \'241\') or (id_cat = \'240\') or (id_cat = \'242\') or (id_cat = \'243\')
Попробуй написать так:
((id_cat = \'241\') or (id_cat = \'240\') or (id_cat = \'242\') or (id_cat = \'243\'))
NР:
(name regexp \'$key_word\') or (author regexp \'$key_word\') or (format regexp \'$key_word\') or (descr regexp \'$key_word\')
ну и это соответсвенно тоже также
((name regexp \'$key_word\') or (author regexp \'$key_word\') or (format regexp \'$key_word\') or (descr regexp \'$key_word\'))
-
MadDog:
((id_cat = \'241\') or (id_cat = \'240\') or (id_cat = \'242\') or (id_cat = \'243\'))
id_cat IN (241, 240, 242, 243)
или
id_cat BETWEEN 240 AND 243
-
MadDog
Помогло, спасибо!