Здравствуйте, возник следующий вопрос, на который я пока не могу найти ответ в связи с малым опыт работы с базой данных. Есть следующего вида таблицы a_content ID | MARKA | MODEL | OIL | COLOR | TOWN | COST a_content_cat ID | CONTENT_ID | NUMBER И есть форма marka - чекбокс - выбирает id марки автомобилей model - чекбокс - выбирает id модели марок автомобиля oil - чекбокс - выбирает типы топлива color - чекбокс - выбирает цвета town - select - id города cost - цена (2 input - costmin, costmax) и number[] - чекбокс- выбирает опции автомобиля, новое, подержанное, кредит после нажатия submit , я отправляю форму, и обрабатываю ее следующим образом if(!empty($_GET['costmin']) || !empty($_GET['costmax'])){ $users_sql[]="`cost`>{$costmin} AND `cost` < {$costmax}"; } if(!empty($_GET['marka'])){ $marka = implode(",", $_GET['marka']); $users_sql[]="`marka` in ({$marka})"; } if(!empty($_GET['color'])){ $color = implode(",", $_GET['color']); $users_sql[]="`color` in ({$color})"; } if(!empty($_GET['model'])){ $model = implode(",", $_GET['model']); $users_sql[]="`model` in ({$model})"; } if(!empty($_GET['town'])){ $users_sql[]="`town`={$_GET['town']}"; } if(!empty($_GET['oil'])){ $oil = implode(",", $_GET['oil']); $users_sql[]="`oil` in ({$oil})"; } if (sizeof($users_sql)) { $users_sql = " ".implode(' AND', $users_sql); } $result = mysqli_query("SELECT * FROM a_content WHERE `id` > '1' AND {$users_sql} "); Проблема - 1 , ищет все по отдельности, если я выберу opel - astra - benzin выведет все opel, все astra, все benzin Проблема - 2, не могу сюда же добавить вторую таблицу( в один запрос) чтобы сверить еще и опции по number = number --- Добавлено --- пробовал UNION но там вроде как, должны совпадать количество rows
жесть... оформи код правильно перед запросом в БД, пропиши строку echo "SQL запрос"; и выпиши сюда `id` > '1' что это делает? Для чего?
ладно, задам вопрос более точнее, как мне использовать в запросе несколько IN , пример .... WHERE `ac`.`marka` in ({$marka}) , `ac`.`model` in ({$model}), ... и т.д?
вроде ставите and и еще условие, не так? WHERE `ac`.`marka` in ({$marka}) , `ac`.`model` in ({$model}) AND WHERE .. .. . IN ..
Код (Text): SELECT t1.*, t2.id AS id_two FROM table1 t1 LEFT JOIN table2 t2 ON t2.number = t1.number WHERE ...