我在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)

我知道我已经在评论中对此表示赞同,但是如果您接受我的答案作为实际答案可能会更好,这样人们可以看到它得到了回答,而不是仅仅看到已经回答了一个未回答的问题。

09-26 07:27