我在php请求中有以下变量:
myfile.php?location=0&bedrooms=0
这是我用来检索它的代码(我指出了字段类型,因为它是我处理请求方式之间的唯一区别):
$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)
当我有一个诸如location = 0&bedrooms = 1之类的请求时,它工作正常,但bedrooms = 0,我没有结果。
当我将卧室声明更改为
AND bedrooms IN (-1,1,2,3,4,5,6,7,8,9)
有用。
如果没有其他说明,我是否应该在卧室中添加除“”(单引号)以外的其他内容?
有没有更好的方法来解决这个问题?
最佳答案
AND bedrooms IN ($bedrooms)
更改为AND bedrooms IN ($ibedrooms)
我知道我已经在评论中对此表示赞同,但是如果您接受我的答案作为实际答案可能会更好,这样人们可以看到它得到了回答,而不是仅仅看到已经回答了一个未回答的问题。