0
我有2個問題如下,如果/ ELSEIF/else語句:如果/ ELSEIF /其他只返回第一個條件
$rows = array();
$stmt = $dbconnection->query("SELECT * FROM TABLE_NAME WHERE data_field LIKE 'data_selection'");
if ($stmt) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
array_push($rows, $row);
if ($row['something '] == 'selection1') {
$highlightsarray = array("gridHighlights" => 'text option 1 to display on site');
$highlights = $row + $highlightsarray;
} elseif ($row['something'] == 'selection2') {
$highlightsarray = array("gridHighlights" => 'text option 2 to display on site');
$highlights = $row + $highlightsarray;
} else {
$highlights = "<p>default messaging</p>";
}
$fields = $highlights; // this is a placeholder for other if statements I need to add
$output .= $modx->getChunk('chunk_name', $fields);
}
}
return $output;
}
我遇到的第一個問題是==
沒有返回任何結果,如果我改變它到=
然後它有些作品。
如果我讓我的發言($row['something '] = 'selection1')
(只=
),則僅返回第一if
條件,即使它是不正確的,應該返回無論是elseif
或else
條件。
不知道我在做什麼錯在這裏,任何援助非常感謝,謝謝。
'='是一個賦值操作符,除非你賦值的值不能被賦值爲'false',它總是返回'true',所以下面的'如果每次都會執行'branch'. == ==是一個相等運算符,你當然會用它來代替它 - 唯一的解釋就是你的變量與字符串不匹配,你應該調試你的數據庫輸出看你自己。 – potashin
謝謝,只要我添加了一個'var_dump($ row)',那麼它就開始行爲正確了。不知道問題是什麼,我的字符串看起來是正確的。現在唯一的問題是,我的其他人什麼時候都沒有匹配有奇怪的行爲,但它看起來像其餘的是好的。謝謝。 – Robert
不客氣 – potashin