2017-01-12 2 views
0

$ hold1または$ hold2 = "Oversidder"の場合、すべてのボタンを実行しているときに更新ボタンを赤色(危険なブートストラップ)にしようとすると、赤色に変わります。それは正しい値を持つDBからの行をエコーし​​ます。foreachのif文またはstatementの問題

ここ
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でなければ)常にtrueになります。あなたは望みます: '$ hold1 ==" Oversidder || $ hold2 == "Oversidder" ' – Jeff

答えて

1

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

次の2つのミスがあります(==されるであろう、

1.=は何かに値を代入する演算子ですが、比較したいです"lazy")または===( "exact" - 型を含む)。 $hold1NULLfalse0、...(任意のfalsy値)以外の何かがある場合は

だから、この

$hold2 = "Oversidder" 

は、この第一の条件は、常に

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

2.ますする必要がありますたとえあったとしても、真実である。$hold1=='foo'

結論:

何をしたいです。このような場合には

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

それはマニュアルを参照することは常に良い考えです:
Comparison Operators
Logical Operators