К примеру есть форма, где я выбираю дату и статус заказа. Далее по AJAX уже из базы вывожу. Запрос в php скрипте делаю Код (Text): "WHERE date = " . $date . " AND status = " . $status . "" Вот когда я два условия в форме выбираю, то заказы выводятся, а когда одно нет. Как можно это сделать с одним запросом ? Вариант с проверкой $_POST и в зависимости от него уже выводить не подходит. Так как это будет 3 разных запроса. А дальше у меня идет форма с 4 полями ....
Вообще ничего не понятно. Попробуйте лучше сформулировать свой вопрос. Плюс покажите, как пытались делать запрос с одним условием. И покажите полный запрос, а не только часть where.
Код (Text): SELECT clients.name, orders_print.date_order, categories.name, status.name FROM orders_print INNER JOIN clients ON orders_print.id_client = clients.id_client INNER JOIN status ON orders_print.id_status = status.id_status INNER JOIN categories ON orders_print.id_category = categories.id_category INNER JOIN managers ON clients.id_manager = managers.id_manager WHERE orders_print.id_status= " . $id_status . " AND managers.id_manager=" . $id_manager . " Ну вот к примеру запрос на вывод, он с формы получает два значения $id_status и $id_manager. Форма может отправить как одно значение так и два, а может вообще ничего так как при загрузке значения пустые. Вот как написать такой запрос, чтобы при любых условиях он работал Добавлено спустя 2 минуты 21 секунду: Раньше я делал так. Код (Text): if($_POST['dateStart'] != "" && $_POST['dateEnd'] != "") { $dateStart = $_POST['dateStart']; $dateEnd = $_POST['dateEnd']; $query = "SELECT * FROM orders_1C WHERE date_order BETWEEN '" . $dateStart . "' AND '" . $dateEnd . "' AND code_client='000002805'"; } else { $query = "SELECT * FROM orders_1C WHERE code_client='000002805'"; } Может быть можно это сделать в один.
например так, как я всегда делаю Код (Text): $sSQL = 'SELECT `p`.* , `ps`.`stuff`, `img`.`images` FROM `' . $this->_tableProducts . '` `p`'; $sSQL .= ' LEFT JOIN `' . $this->_tableProductsImages . '` `img`'; ..................... $sBody = ''; if( isset( $this->_aPrice['start'] )) { if( '' !== $sBody ) { $sBody .= ' AND '; } $sBody .= ' `p`.`price` >= ' . $this->_aPrice['start']; } if( isset( $this->_aPrice['end'] )) { if( '' !== $sBody ) { $sBody .= ' AND '; } $sBody .= ' `p`.`price` <= ' . $this->_aPrice['end']; } if( '' !== $sBody ) { $sSQL .= ' WHERE' . $sBody; } $sSQL .= ' ORDER BY `p`.`' . $this->_sOrderBy . '`'; так понятнее?