что подставить в where?

will_get_it

Новичок
Доброго времени.

имеется запрос. В упрощенном виде пусть он выглядит так:
PHP:
SELECT * FROM cars WHERE make_id = $make and model_id = $model
$make и $model - данные, которые приходят от пользователя из $_POST

Вопрос: что, если пользователь не указал никакой конкретной марки и модели и хочет посмотреть все доступные?
Что нужно подставить в запрос в этом случае?

Торможу уже часа три:(
 

Andkorol

Новичок
Как-то так примерно:
PHP:
$sql = "SELECT * FROM `cars` WHERE 1";
$allowed = array('make_id', 'model_id');// имена полей формы соответствуют именам полей в таблице cars, по которым возможна фильтрация 
foreach($_POST as $key => $value){
	if(in_array($key, $allowed) && !empty($value))
		$sql .= " AND `" . $allowed[array_search($key, $allowed)] . "` = '" . intval($value) . "'";
}
var_dump($sql);
 

will_get_it

Новичок
Andkorol
Спасибо, интересное решение.
Там еще в конце запроса добавятся лимиты и ордэры, но это решаемо. Спасибо!
 
Сверху