2017-01-12 103 views
0

如果$ hold1或$ hold2 =「Oversidder」但運行所有按鈕變爲紅色時,試圖使更新按鈕變爲紅色(危險引導程序)。它使用正確的值回顯數據庫中的行。if或if語句存在問題

foreach ($stmt as $row) 
{ 

$hold1 = $row['kampH1']; 
$hold2 = $row['kampH2']; 

echo '<tr>'; 
    echo '<td>'. $hold1 . '</td>'; 
    echo '<td>'. $row['kampH1M'] . '</td>'; 
    echo '<td>'. $row['kampH2M'] . '</td>'; 
    echo '<td>'. $hold2 . '</td>'; 
    echo '<td width=125>'; 

    if ($hold1 || $hold2 = "Oversidder") { 

    echo '<a class="btn btn-danger" href="update.php? id='.$row['kampID'].'">Update</a>';} 

    else 
{ 
    echo '<a class="btn btn-success" href="update.php?id='.$row['kampID'].'">Update</a>';} 
    echo '</td>'; 
echo '</tr>'; 
} 
+0

'='是賦值運算符; '=='或'==='是比較運算符 –

+0

'='!='==':您正在分配,而不是比較!將'='更改爲'==' – Jeff

+0

編輯完成後:'$ hold1 || $ hold2 =「Oversidder」也將始終爲真(除非$ hold == false)。你想要:'$ hold1 ==「Oversidder || $ hold2 ==」Oversidder「' – Jeff

回答

1

這裏

if ($hold1 || $hold2 = "Oversidder") 

你有兩個錯誤:

=是分配價值的東西操作,但要比較,這將是==( 「懶」)或===(「確切」 - 包括類型)。

所以這

$hold2 = "Oversidder" 

應該

$hold2 == "Oversidder" 
// OR 
$hold2 === "Oversidder" 

2.如果$hold1是別的東西比NULLfalse0,..(任何falsy值)這第一個條件總是即使$hold1=='foo'

結論:

你想要的是:

//if this is "Oversidder" OR this is "Oversidder" 
if ($hold1 == "Oversidder" || $hold2 == "Oversidder") { 
    // do smth 
} 

在這樣的情況下,它總是一個好主意,諮詢手冊:
Comparison Operators
Logical Operators