Задавайте вопросы, мы ответим
Вы не зашли.
Помогите пожалуйста разобраться!
Подставили задачу сделать поиск по диапазонам, к примеру есть длина и ширина, выбираем от и до значения длины, также по ширине. К примеру есть 3 коробки, у них длина от 500 до 800 и ширина от 300 до 500. Делаю вот такой запрос, предварительно получив значения через форму инпут:
"
SELECT `id`,`title`,`description`,`imagemini`,`naznachenie`,`nomer`,`razmer2_d`,`razmer2_h`,`razmer2_v`,`date`,'view_data.php' AS `file` FROM `data` WHERE razmer2_d BETWEEN '$search' AND '$search2'
UNION ALL
SELECT `id`,`title`,`description`,`imagemini`,`naznachenie`,`nomer`,`razmer2_d`,`razmer2_h`,`razmer2_v`,`date`,'view_data.php' AS `file` FROM `data` WHERE razmer2_h BETWEEN '$search3' AND '$search4' "
Он сперва получается ищет по длине все коробки, потом по ширине и складывает в результат. Проблема заключается в том, что программа выводит всё подряд по одному параметру, а не сравнивая их с длиной и шириной. То есть если есть коробка в длине, но её нет в ширине, то тогда выводить её не надо. В интернете не смог найти решение, может вы сможете дать какой нибудь совет. Ещё есть проблема то что он повторяет некоторые коробки, но это вроде как решается через DISTINCT. Заранее благодарен
Неактивен
Неактивен
Зачем такие сложности - через UNION?
Не проще ли
SELECT `id`,`title`,`description`,`imagemini`,`naznachenie`,`nomer`,`razmer2_d`,`razmer2_h`,`razmer2_v`,`date`,'view_data.php' AS `file`
FROM `data`
WHERE razmer2_d >= 500 and razmer2_d <= 800
AND razmer2_h >= 300 and razmer2_h <= 500
?
Неактивен
rgbeast, deadka
Спасибо большое за ответы, запрос выдал что надо:
SELECT `id`,`title`,`description`,`imagemini`,`naznachenie`,`nomer`,`razmer2_d`,`razmer2_h`,`razmer2_v`,`date`,'view_data.php' AS `file` FROM `data` WHERE razmer2_d BETWEEN '$search' AND '$search2' AND razmer2_h BETWEEN '$search3' AND '$search4'
Неактивен