2014-10-17 61 views
0

我有一個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語句?

有沒有更好的方法來處理這個問題?

+0

因爲'1,1,2,3,4'與'1,1,2,3,4'不同。您可能需要將它們存儲爲數組 – 2014-10-17 13:06:24

+5

'臥室(臥室)'不應該是'和臥室($ ibedrooms)'? – 2014-10-17 13:09:42

+0

@Déjàvu非常感謝你,我一直在改變這一切,並錯過了這一點。 – CDubYaa 2014-10-17 13:20:15

回答

2

AND bedrooms IN ($bedrooms)

改變這

AND bedrooms IN ($ibedrooms)

我知道我已經在評論asnwered這一點,但也許如果你接受我的回答作爲一個實際的答案,使人們可以看到它的回答是更好而不是僅僅看到它已經回答的問題。

0

我處理的方式就是這樣。

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中沒有設置任何值,它將默認選擇所有內容。