Я пытаюсь выполнить простой поиск автомобилей с 3 полями выбора, проблема в том, чтобы отобразить все автомобили, когда 3 значения выбора равны 0: Только эта часть не работает:
if ($fabricante_id==0 || $modelo_id==0 || $combustivel_id==0){
$filtros = "";
}
Полный код:
$fabricante_id=isset($_GET['fabricante_id'])?(int)$_GET['fabricante_id']:"0";
$modelo_id=isset($_GET['modelo_id'])?(int)$_GET['modelo_id']:"0";
$combustivel_id=isset($_GET['combustivel_id'])?(int)$_GET['combustivel_id']:"0";
$filtros=NULL;
if ($fabricante_id==0 || $modelo_id==0 || $combustivel_id==0){
$filtros = "";
}
if ($fabricante_id!=0 || $modelo_id!=0 || $combustivel_id!=0){
if ($fabricante_id!=0){
$filtros = " where auto_fabricante='{$fabricante_id}' ";
}
if ($modelo_id!=0){
if ($filtros){
//$filtros= $filtros ." AND auto_modelo='{$modelo_id}' ";
$filtros. = " AND auto_modelo='{$modelo_id}' ";
}else{
$filtros = "where auto_modelo='{$modelo_id}' ";
}
}
if ($combustivel_id!=0){
if ($filtros){
//$filtros= $filtros ." AND auto_modelo='{$modelo_id}' ";
$filtros. = " AND auto_combustivel='{$combustivel_id}' ";
}else{
$filtros = " where auto_combustivel='{$combustivel_id}' ";
}
}
$sql = "SELECT *
FROM automoveis
{$filtros} ";






Оператор and в php - это &&, а не ||, вам нужно изменить его на:
if ($fabricante_id==0 && $modelo_id==0 && $combustivel_id==0){
$filtros = "";
}
«тоже не работает» - очень полезная фраза здесь, в stackoverflow.
OP также должен использовать оператор else вместо того, чтобы пытаться выполнить противоположное условие сразу после этого.