sorgunu bu şekilde değiştirip dener misin.
$sorgu = "SELECT * FROM urun WHERE urun_durum='1' ";
$sorgu .= (isset($_POST['kategori_id']) AND $_POST['kategori_id'] != '') ? "AND kategori_id = '{$_POST['kategori_id']}' " : null;
$sorgu .= (isset($minfiyat) AND $minfiyat != '') ? "AND secenek11_fiyat >= '{$minfiyat}' " : null;
$sorgu .= (isset($maxfiyat) AND $maxfiyat != '') ? "AND secenek11_fiyat <= '{$maxfiyat}' " : null;
if(isset($_POST['mahalle_id']) AND is_array($_POST['mahalle_id'])){
$sorgu .= "AND (";
foreach ($_POST['mahalle_id'] as $key=>$val){
if($key == 0) {
$sorgu .= "mahalle_id = '{$val}' ";
}
else{
$sorgu .= "or mahalle_id = '{$val}' ";
}
}
$sorgu .= ") ";
}
$urunsor = $db->query("{$sorgu}", PDO::FETCH_ASSOC);