这似乎不起作用,不知道为什么但是IF NOT声明似乎对我不起作用。 我拼命检查了所有内容并且拼写正确。
这第一段代码似乎工作正常。
$queryString = "SELECT * FROM biler";
if($searchType == "alle") {
//nothing
} else {
$queryString = " WHERE bilType = '$searchType'";
}
但事实并非如此。
$queryString = "SELECT * FROM biler";
if(!$searchType == "alle") {
$queryString = " WHERE bilType = '$searchType'";
}
答案 0 :(得分:4)
你的"!"是在错误的地方
试试这个:
if($searchType != "alle") {
$queryString = " WHERE bilType = '$searchType'";
}
!=代表"不等于"
您尝试对代码执行的操作是询问变量是否为" true"
答案 1 :(得分:4)
您的比较不正确。应该是
$queryString = "SELECT * FROM biler";
if($searchType != "alle") {
$queryString .= " WHERE bilType = '$searchType'";
}
参见php比较运算符 - http://php.net/ternary
答案 2 :(得分:3)
两件事......
首先,那些条件完全相反。因此,即使第二个确实“有效”,它仍会产生与第一个相反的效果。
其次,运营商不按您认为的顺序运作。你基本上是这样做的:
if ((!$searchType) == "alle")
您可以使用:
if (!($searchType == "alle"))
或者,更干净:
if ($searchType != "alle")
答案 3 :(得分:2)
你的!应该在整个条件下应用,即$ searchType ==" alle"如下所示
$queryString = "SELECT * FROM biler";
if(!($searchType == "alle")) {
$queryString = " WHERE bilType = '$searchType'";
}
答案 4 :(得分:1)
您检查过$searchType
吗?也许它不存在?例如:
$queryString = "SELECT * FROM biler";
if(isset($searchType) && $searchType == "alle") {
//nothing
} else {
$queryString = " WHERE bilType = '$searchType'";
}