2014-03-19 64 views
-1

這似乎並沒有工作,不知道爲什麼,但IF NOT聲明似乎並沒有爲我工作。 我用大概的方法檢查了一切,拼寫正確。PHP如果不是似乎沒有工作正確

這第一段代碼似乎工作正常。

$queryString = "SELECT * FROM biler"; 

if($searchType == "alle") { 
    //nothing 
} else { 
    $queryString = " WHERE bilType = '$searchType'"; 
} 

但是這沒有。

$queryString = "SELECT * FROM biler"; 

if(!$searchType == "alle") { 
    $queryString = " WHERE bilType = '$searchType'"; 
} 
+5

此外,還需要追加第二'$ queryString':'$ =的queryString ...' – Revent

+1

不應該$的queryString =「WHERE bilType ='$ searchType'」; be $ queryString。=「WHERE bilType ='$ searchType'」; – rakeshjain

回答

1

你有沒有選擇$searchType?也許它不存在?例如:

$queryString = "SELECT * FROM biler"; 

if(isset($searchType) && $searchType == "alle") { 
    //nothing 
} else { 
    $queryString = " WHERE bilType = '$searchType'"; 
} 
4

您的「!」在錯誤的地方

試試這個:

if($searchType != "alle") { 
    $queryString = " WHERE bilType = '$searchType'"; 
} 

=表示「不等於」

什麼你試圖用你的代碼做的是問,如果變量不是「真「

3

兩件事...

首先,這些是完全相反的條件。所以即使第二個人「工作」,它仍然會產生第一個的相反效果。

其次,運營商不按照您認爲的順序工作。你基本上這樣做:

if ((!$searchType) == "alle") 

您可以使用此:

if (!($searchType == "alle")) 

或者,更簡潔:

if ($searchType != "alle") 
4

您不正確比較。應該

$queryString = "SELECT * FROM biler"; 

if($searchType != "alle") { 
    $queryString .= " WHERE bilType = '$searchType'"; 
} 

看到PHP比較運算符 - http://php.net/ternary

2

你!應在整個狀態,即$檢索類別應用== 「全部」 像下面

$queryString = "SELECT * FROM biler"; 

if(!($searchType == "alle")) { 
    $queryString = " WHERE bilType = '$searchType'"; 
}