2010-06-19 112 views
0

是否可以根据用户选择的内容动态修改where标准? 我正在创建一个有几个下拉列表的表单。例如,在下面的查询中,客户可以根据价格,邻居和财产类型(即公寓,联排别墅,单身家庭等)在数据库中搜索财产。但是,也可以选择返回任何类型的财产,但要考虑其他条件。有没有办法根据用户是否想要返回所有属性类型来动态修改where子句?在mysql中创建动态where子句

SELECT a.id, property_id, price, name as section_name, baths, beds 
FROM 
    properties a, subdivision b 
WHERE 
    a.subdivision = b.id and 
    property_type = $property_type 
ORDER by id" 

回答

0

只是动态构建您的查询。我不是一个PHP的编码器所以这可能不是语法正确,但它应该是这个样子:

$query = <<<QUERY 
SELECT a.id, property_id, price, name as section_name, baths, beds 
FROM 
    properties a, subdivision b 
WHERE 
    a.subdivision = b.id 
QUERY; 

if ($property_type) 
{ 
    $query = $query . " and property_type = $property_type "; 
} 

$query = $query . " order by id"; 

$result = mysql_query($query); 
+0

用“。”替换“+”。这应该可行 – DrColossos 2010-06-19 14:02:15