2013-03-13 18 views
0

我有一个房地产搜索表单上的一个领域要求从最小到最大卧室数量。 PHP查询解压缩返回搜索结果是;如何获取更大的价值和使用PHP查询

//check bedrooms 
if(!empty($_GET["room_no_min"]) && is_numeric($_GET["room_no_min"])){ 
    $query[] = "'No_Bedrooms' >= '".$_GET["room_no_min"]."'"; 
    $room_min_val = $_GET["room_no_min"]; 
} 
if(!empty($_GET["room_no_max"])){ 
    $query[] = "'No_Bedrooms' <= '".$_GET["room_no_max"]."'"; 
    $room_max_val = $_GET["room_no_max"]; 
} 

这很好,但我想它要考虑到,如果有人进入价值5(分)2(最大值),即反过来比他们猜想。我不想使用验证我宁愿查询可能类似from =>min(room_no_min,room_no_max)<= max(room_no_min,room_no_max),但不知道如何重新编写查询。

+0

请参阅http://stackoverflow.com/questions/60174/how-to-prevent-sql-injection-in-php – WouterH 2013-03-13 15:57:33

+0

的数据库引擎你正在用吗? – Ares 2013-03-13 15:57:57

+0

我正在使用PHP 5?那是什么意思? – Naz 2013-03-13 16:23:16

回答

2

为什么不使用PHP max()和min()函数?

$room_min_val = min($_GET["room_no_min"], $_GET["room_no_max"]); 
$room_max_val = max($_GET["room_no_min"], $_GET["room_no_max"]); 

更新的代码:

if(!empty($_GET["room_no_min"]) && is_numeric($_GET["room_no_min"])){ 
    $room_min_val = $_GET["room_no_min"]; 
} // else throw an error maybe? 
if(!empty($_GET["room_no_max"]) && is_numeric($_GET["room_no_max"])){ 
    $room_max_val = $_GET["room_no_max"]; 
} // else throw an error maybe? 

$room_min_val = min($_GET["room_no_min"], $_GET["room_no_max"]); 
$room_max_val = max($_GET["room_no_min"], $_GET["room_no_max"]); 

$query[] = "'No_Bedrooms' >= '".$room_min_val."'"; 
$query[] = "'No_Bedrooms' <= '".$room_max_val."'"; 
+0

我无法使用代码.e.g $ query [] =“'No_Bedrooms'> ='”。$ _ GET [“room_no_min”]。“'”;也许我把点/逗号放在错误的地方或什么的。 – Naz 2013-03-13 16:25:23

+0

你做错了朋友。查看我更新的代码。还要对你的SQL做些什么,这是非常不安全的。 – Husman 2013-03-13 16:32:28

+0

谢谢。我知道什么和SQL注入是,但a)所有领域都下降,是否仍然敏感和b)我能做些什么。 – Naz 2013-03-13 17:34:01