2012-05-27 121 views
1

我正在尝试搜索我正在为朋友工作的某个媒体资源网站。 在数据库中,属性类型以id号命名,即:house = 30,flat = 8,terraced = 1等等。从mysql中选择多个数组

如何从一些独立式住宅中检索数据库中的所有属性2间,房屋的价值是30等:) 值它让我stuck..lol 这里是我到目前为止这是不工作...

$bedrooms = $_GET['bedrooms']; 
$pricefrom = $_GET['pricefrom']; 
$priceto = $_GET['priceto']; 
$proptype = $_GET['proptype']; 

if($proptype == 'house'){ 
$search_propsubid = array('1,2,3,4,5,6,21,22,23,24,26,27,30'); 
}elseif($proptype == 'flat'){ 
$search_propsubid = array('7,8,9,10,11,28,29,44'); 
}elseif($proptype == 'bungalow'){ 
$search_propsubid = array(''); 
} 


$sql = mysql_query("SELECT * FROM `properties` WHERE `PROP_SUB_ID`='$search_propsubid' AND `BEDROOMS`='$bedrooms' AND `TRANS_TYPE_ID`='1' HAVING `PRICE` BETWEEN '$pricefrom' AND '$priceto' ORDER BY `UPDATE_DATE` DESC"); 

感谢您对我的时间希望有人能指出我在正确的方向.. 关心 史蒂夫

回答

1

你可以尝试implode阵列:

$search_propsubid = array('1,2,3,4,5,6,21,22,23,24,26,27,30'); 
$comma_separated = implode(",", $search_propsubid); 
$sql = mysql_query("SELECT * FROM `properties` WHERE `PROP_SUB_ID` in ($comma_separated) ... 

的Comme回来的消息,如果这不适合你的作品。

+0

谢谢你这么多:d厂一种享受,如此感恩! – Steve

+0

@danihp,+'d,我不想和你一起交火;) – Zuul

1

可以使用MySql IN()比较操作来选择所有匹配值的列表:

$sql = mysql_query(" 
    SELECT * 
    FROM `properties` 
    WHERE `PROP_SUB_ID` IN (" .implode(",", $search_propsubid). ") 
    AND `BEDROOMS`='$bedrooms' 
    AND `TRANS_TYPE_ID`='1' 
    HAVING `PRICE` BETWEEN '$pricefrom' AND '$priceto' 
    ORDER BY `UPDATE_DATE` DESC 
"); 

假设$proptype == 'flat',输出将是:

SELECT * 
FROM `properties` 
WHERE `PROP_SUB_ID` IN (7,8,9,10,11,28,29,44) 
... 
+0

你好,谢谢你的回复,我非常感谢你花时间提供你的帮助:) 你的回答非常性质与第一个完全适合我的工作类似。 谢谢你的时间:) – Steve

+0

Steve,Yap当我完成发布我的答案时,我看到@danihp答案...获得正确的链接并运行测试确实需要一些时间:)很高兴你的问题得到解决! – Zuul

+0

很好的解释了答案 – danihp