PDA

Просмотр полной версии : Множественный поиск


Regis Filius
06.12.2008, 00:59
Если кто-то реализовывал сам или знает подобные пхп коды для поиска сразу по нескольким параметрам, то очень хотелось бы этот код лицезреть :)

Что именно надо: поиск, который вёлся бы сразу по нескольким атрибутам, причём они разного типа, есть и строковые, и численные, и булевы атрибуты. И некоторые из них могут быть не заполнены, при этом их учитывать не стоит, а только те, которые заполнены.

Собственно, на этом этапе моя логика дала сбой ))) Реализовать поиск по одному определённому параметру легко, а вот сразу по нескольким для меня уже сложновато. Надеюсь на помощь :)

Пока что я пытался идти через определение в запросе к базе данных нескольких параметров, то есть ("SELECT * FROM название_таблицы WHERE строковой_атрибут LIKE '$переменная %' AND численный_атрибут BETWEEN число1 and число2 AND булев_атрибут = 0 или 1 в зависимости от выбора юзера"). Схематично это выглядит вот так. Курсив это столбцы или названия таблиц в базе данных, а подчёркнутые это введённые пользователем переменные, большими буквами мускульные запросы. Если существуют специальные запросы мускула или функции пхп для создания такого запроса, то буду рад услышать, хотя если они будут, то я мега-невнимательный человек, ибо таких не видел. А так понимаю, что этот путь довольно глуп сам по себе, и хотелось бы знать другой.

P.S. Внешки искать в просторах интернета код нет.
P.P.S. Подобный поиск в наших просторах я видел на love.ya1.ru

Graf_kaliostro
06.12.2008, 21:26
неасилил многа букаффф !!!!!!!!!!!

wchk
07.12.2008, 02:36
"SELECT * FROM название_таблицы WHERE строковой_атрибут LIKE '$переменная %' AND численный_атрибут BETWEEN число1 and число2 AND булев_атрибут = 0 или 1 в зависимости от выбора юзера".

Вполне нормальный запрос, лайк правда можно заменить полнотекстовым поиском, но и так сойдет. В чем проблема то ?

Regis Filius
07.12.2008, 13:39
А, получилось всё нормально. Волнует только один вопрос: как сделать поиск только по введёным параметрам, чтобы другие он не учитывал? Если пользователь введёт два поля, а третье оставит пустым, то в результате поиск ему скажет, что ничего не нашёл.

bt_
08.12.2008, 06:31
Что то мне подсказывает, что пхпшная проверка будет чутку быстрей скульной. Всё таки лишний запрос получается в случае неудовлетворения условий.

ZayatZ
08.12.2008, 07:50
Что то мне подсказывает, что пхпшная проверка будет чутку быстрей скульной. Всё таки лишний запрос получается в случае неудовлетворения условий.
Что-то мне подсказывает, что ты прав :)

VanDamM
08.12.2008, 09:30
http://www.linuxsoft.ru/lib/libarch/lib/prog/php5/function.mysqli-multi-query.html