簡體   English   中英

使用if語句獲取值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM