使用如果GET语句值
问题描述:
我有一个PHP请求以下变量:使用如果GET语句值
myfile.php?location=0&bedrooms=0
这是我使用检索它(我已经指示字段类型,因为它的唯一differnce代码我如何处理请求):
$location = intval($_REQUEST['location']);
Field Type = int(11)
$bedrooms = intval($_REQUEST['bedrooms']);
Field Type = tinyint(3)
这是怎么了处理变量:
if ($location == 0)
$ilocation = '2,3,4,5,6,7';
else
$ilocation = $location;
if ($bedrooms == 0)
$ibedrooms = '-1,1,2,3,4,5,6,7,8,9';
else
$ibedrooms = $bedrooms;
这是我如何在我的查询中使用它:
Where realty.published = '1' AND locid IN ($ilocation) AND bedrooms IN ($bedrooms)
时,我有一个请求,例如位置= 0 &卧室= 1,它工作正常,但卧室= 0我没有得到任何结果。
当我改变卧室声明
AND bedrooms IN (-1,1,2,3,4,5,6,7,8,9)
它的工作原理。
我应该在卧室里还有其他的东西吗?(单引号)if else语句?
有没有更好的方法来处理这个问题?
答
AND bedrooms IN ($bedrooms)
改变这
AND bedrooms IN ($ibedrooms)
我知道我已经在评论asnwered这一点,但也许如果你接受我的回答作为一个实际的答案,使人们可以看到它的回答是更好而不是仅仅看到它已经回答的问题。
答
我处理的方式就是这样。
if (!isset($_GET['location']) || intval($_GET['location']) == 0){
$ilocation = '2,3,4,5,6,7';
}
else {
$ilocation = intval($_GET['location']);
}
if (!isset($_GET['bedroom']) || intval($_GET['bedroom']) == 0){
$ibedrooms = '-1,1,2,3,4,5,6,7,8,9';
}
else {
$ibedrooms = intval($bedrooms);
}
这样,如果URL中没有设置任何值,它将默认选择所有内容。
因为'1,1,2,3,4'与'1,1,2,3,4'不同。您可能需要将它们存储为数组 – 2014-10-17 13:06:24
'卧室(卧室)'不应该是'和卧室($ ibedrooms)'? – 2014-10-17 13:09:42
@Déjàvu非常感谢你,我一直在改变这一切,并错过了这一点。 – CDubYaa 2014-10-17 13:20:15