[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Многопараметрический поиск
Эли4ка
Здравствуйте, господа форумчане. Вопросец laugh.gif
В основном все делают для сайта ЧПУ, роутинг и прочее.
А как быть с поиск на сайте? Ведь не сделаешь же site.ru/search/query/desc/34/site.ru/ (даже искала-не нашла такого, может кто покажет)
Обычно делают так(реальные примеры):
1) //test..com/search?searchfor=query_str&p=ance&period=all
2) //test..com/music?placeID=213571&period=last&period_last=1d&duration=10m&bitrate=lossless&top=1&tracklist=1&radio=1&sell=1&release=1&opinion=1&contest=1&mastering=1&download=1&podsafe=1&audio_branded=1&bpm_cb=1&bpm=128&tone=Bb&no_junk=1&its_hard=1&its_positive=1&for_sleeping=1&for_working=1&for_sunrise=1&sex_man=1&sex_woman=1&age_cb=1&age=25

Сам вопрос-как в скрипте обрабатывать такое большое количество приходящих внешних параметров? ведь если для 1) случая еще можно через if или case,то для 2) это какая ж простыня то получится. Просто для каждого параметра будет своя выборка, свои проверки.
ну и заодно вопрос на засыпку-реально ли для второго сделать ЧПУ dry.gif
P.S. Примеры не искусственные, а боевые.
vcjaenhy
sex_woman=1 its_positive=1 unsure.gif blink.gif

думаю это сделано что бы не плодить массив в GET

скорее всего сначала была написана система, а потом приляпали фильтр отбора музыки

Вообще весь указанный вами пример может решаться одной функцией без доп проверок, важно лишь наличие наименования переменной, а дальше все массивом скармливается скрипту через OR
Эли4ка
Цитата (vcjaenhy @ 3.03.2019 - 21:05)
sex_woman=1 its_positive=1 unsure.gif blink.gif

думаю это сделано что бы не плодить массив в GET

скорее всего сначала была написана система, а потом приляпали фильтр отбора музыки

Что? ничего не поняла
vcjaenhy
Эль, это параметры

no_junk=1&its_hard=1&its_positive=1&for_sleeping=1&for_working=1&for_sunrise=1&sex_man=1&sex_woman=1&age_cb=1

другими словами нет задачи передавать значение 1 в переменных sex_man=1&sex_woman=1
есть необходимость получить сами переменные, значит они и являются критерием последующего отбора

ищем строку где параметр = sex_woman OR sex_man OR for_working и т.д.
Эли4ка
То есть это типо чекбокса? 1 или 0?
vcjaenhy
вроде того, потом все эти названия переменных допустим ищутся по бд в одном поле
miketomlin
Цитата (Эли4ка @ 3.03.2019 - 21:38)
А как быть с поиск на сайте? Ведь не сделаешь же site.ru/search/query/desc/34/site.ru/ (даже искала-не нашла такого, может кто покажет)

Почему нет? Именно так и делаю. Ну после /search/ часто и без слэшей обходится, но это уже мелкие детали, зависящие от способа кодирования запроса.
miketomlin
P.S. Если все параметры обязательные (или расположены в порядке от обязательных к необязательным), можно указывать только значения, например, через тот же слэш. Можно использовать и произвольный порядок, подставляя вместо отсутствующих значений необязательных параметров какой-нибудь спец. символ.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.