[英]Using if statements for GET Values
我在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之類的請求時,它工作正常,但卧室= 0,我沒有結果。
當我將卧室聲明更改為
AND bedrooms IN (-1,1,2,3,4,5,6,7,8,9)
有用。
如果沒有其他說明,我是否應該在卧室中使用除''(單引號)以外的其他內容?
有沒有更好的方法來解決這個問題?
AND bedrooms IN ($bedrooms)
更改為
AND bedrooms IN ($ibedrooms)
我知道我已經在評論中對此表示贊同,但是如果您將我的答案作為實際答案接受,可能會更好,這樣人們可以看到它得到了回答,而不是僅僅看到已經回答了一個未回答的問題。
我要處理的方式是這樣的。
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中設置任何值,則默認選擇所有內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.