0
我有一大堆数据(房屋列表)需要用户可以过滤的能力。最小/最大卧室数量,最小/最大价格范围,郊区,类型的属性。选择一个大列表(带过滤器)和PDO
我已经创建了一个包含过滤选项的数组,但是只有在选择了所有选项的情况下,该查询才起作用。我需要有能力为它工作,只有一个选项被选中。
任何想法我应该如何去做呢?
$query = $db->prepare("SELECT *, (SELECT MIN(FileName) as FileName
FROM `images`
WHERE `images`.`PropertyID` = `property`.`PropertyID` order by `images`.`id` asc)
as FileName
FROM `property`
INNER JOIN `features` ON `property`.`PropertyID` = `features`.`PropertyID`
WHERE `property`.`Active` = '1' AND `property`.`homelink` = '0'
AND `property`.`Suburb` = :suburb
AND `features`.`Bedrooms` >= :bedroom_min
AND `features`.`Bedrooms` <= :bedroom_max
AND `property`.`Rent` >= :price_min
AND `property`.`Rent` <= :price_max
AND `property`.`PropertyType` = :property_type
GROUP BY `property`.`propertyid`
ORDER BY `property`.`AdvHeading` = 'LEASED!' ASC, `property`.`rent` DESC");
$vars = array(suburb,bedroom_min,bedroom_max,price_min,price_max,property_type);
foreach($vars as $key) {
${$key} = (isset($_GET[$key]) === true) ? $_GET[$key] : '';
$query->bindValue(':'.$key.'', ${$key}, PDO::PARAM_STR);
}
try {
$query->execute();
$rows = $query->fetchAll(PDO::FETCH_ASSOC);
echo '<pre>', print_r($rows, true), '</pre>';
}
catch(PDOException $e){
die($e->getMessage());
}
哦,我的!当你得到答案并且当你看到它很明显时,你不讨厌!谢谢你,这会很好地工作 – Ved 2013-04-08 05:56:27