$inputParameters['Min_Price']['fiyat >'] ve $inputParameters['Max_Price']['fiyat <'] ifadeleri "fiyat" diye bir veri olmadığı için boş geçer. Sonuçta şöyle bir çıktı oluşur sql sorgunuzda:
SELECT `id`, `urun_baslik`, `banyo`, `yatak_oda`, `emlak_tip`,`tarif`, `fiyat`, `birim`,`bolge`,`bolge2`,`masterid`,`emlak_buyuk` FROM `adverts` WHERE `urun_baslik` LIKE :urun_baslik and `id` LIKE :id and `banyo` LIKE :banyo and `yatak_oda` LIKE :yatak_oda and `emlak_tip` LIKE :emlak_tip and `bolge` LIKE :bolge
Yani Min_Price ve Max_Price hiç gelmez bu şekilde sorgunuza. Sadece fiyat kısmına özel, implode kısmından sonra $where öncesine şu kodu ekleyin:
// PHP sürümünü bilmediğim için uzun uzun böyle yazdım.
$minPrice = isset($_POST['Min_Price']) ? (!empty($_POST['Min_Price']) ? (int)$_POST['Min_Price'] : null): null;
$maxPrice = isset($_POST['Max_Price']) ? (!empty($_POST['Max_Price']) ? (int)$_POST['Max_Price'] : null) : null;
if(!is_null($minPrice) && !is_null($maxPrice)) {
if(strlen($where)>0) {
$where .= ' and ';
}
$where .= "fiyat BETWEEN :min_price AND :max_price";
$inputParameters['min_price'] = $_POST['Min_Price'];
$inputParameters['max_price'] = $_POST['Max_Price'];
}Üst taraftaki şu kodu da kaldırabilirsiniz:
if(isset($_POST['Min_Price'])){
$inputParameters['Min_Price']['fiyat >'] = $_POST['Min_Price'];
}
if(isset($post['Max_Price'])){
$inputParameters['Max_Price']['fiyat <'] = $_POST['Max_Price'];
}