Я делаю поисковую систему, которая создает запрос в зависимости от того, что выбрано на странице поиска. Поскольку запрос ограничен, я не могу просто включить в него что-либо, и именно здесь я должен сделать все остальное с предложениями IF и запросить циклы while. Итак, в таблице нет поля возраста, но есть поле даты рождения, поэтому я использую функцию ЕСЛИ, чтобы проверить правильность возраста, а затем распечатываю имя пользователя (имена) в цикле while.
Это работает нормально, но мне также нужно добавить еще два поля в поиск, а именно: округ и город, прямо сейчас работаю над выбором округа на странице. Чего я не могу понять сам, так это логики того, как я должен распечатать пользователей, которые соответствуют всем необходимым полям, не имея 1000 IF ELSE.
Я подумал о том, чтобы выбрать и отфильтровать все правильные почтовые индексы для выбранного округа/региона, затем поместить их в массив, а затем проверить на нем выходной запрос цикла while, но это тоже не сработало.
В моей базе данных у меня есть 3 таблицы, которые выглядят так:
county_table
id, name_of_county
municipial_table
id, county_id, municipial_name
zip_code_table
zip, zip_place_name, municipial_id
Они предварительно сделаны для моей страны. Итак, учитывая почтовый индекс пользователя, мне придется выполнить два разных запроса SELECT, чтобы связать его с таблицей county_table (zip->municipial->county).
Итак, в основном, что я пытаюсь сказать; Я хочу, чтобы поисковая система выводила пользователей, у которых есть правильные данные, в зависимости от того, выбраны ли поля возраста, региона и города. Им нужно быть независимыми и не нравиться:
if($age>X){
if($county==Y){
if($city==Z){
-OUTPUT RESULTS HERE-
} } }
Теперь проблема с этим: что делать, если одно из полей не запрашивается в поиске? Скажем, возраст? Номер округа? Город? Я думаю, что мне нужны не вложенные и независимые блоки IF, но я не уверен, как правильно их настроить.
Помощь очень ценится, большое спасибо.
1 ответ
Похожие вопросы
Связанные вопросы
Новые вопросы
php
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигмальный, динамически типизированный и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.
SELECT * FROM user_table WHERE user LIKE '%username_here%' AND online_status = 0 AND email = 'email_here'
Такой запрос вы получите, если заполните все поля. Причина, по которой я должен опустить возраст, например, заключается в том, что в базе данных дата рождения записывается так: ГГГГ.ММ.ДД. Весь сайт полагается на это, и есть функция, которую я использую, которая преобразует его в допустимый возраст и т. д. Итак, что я делаю с возрастом, так это просто извлекаю его, запускаю через функцию, чтобы получить XX возраст иif($age==$age_input){ OUTPUT RESULTS }
SELECT *, (2011-strftime('%Y', birthday)) AS age WHERE ...
(имена функций зависят от базы данных, 2011 год должен быть рассчитан слишком очевидно). Затем используйте полеage
в предложении WHERE. -- Точно так же вы можете использовать подзапрос для zip_code_table, как мне кажется