2017-01-12 2 views
0

Der Versuch, die Aktualisierungsschaltfläche rot zu machen (danger bootstrap), wenn $ hold1 oder $ hold2 = "Oversidder", aber beim Ausführen aller Schaltflächen rot wird. Es echo die Zeilen von DB mit den richtigen Werten.Probleme mit if oder Anweisung in foreach

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

'=' ist der Zuweisungsoperator ; '==' oder '===' sind Vergleichsoperatoren –

+0

'='! = '==': Sie ordnen, nicht vergleichen! Ändern Sie '=' in '==' – Jeff

+0

Nach Ihrer Bearbeitung: '$ hold1 || $ hold2 = "Oversidder" 'wird auch immer wahr sein (außer $ hold == false). Du willst: '$ hold1 ==" Oversidder || $ hold2 == "Oversidder" ' – Jeff

Antwort

1

Hier

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

Sie haben zwei Fehler:

1.= ist der Bediener einen Wert etwas zuweisen, aber Sie wollen, zu vergleichen, welche == wäre ("faul") oder === ("genau" - einschließlich Typ).

Also das

$hold2 = "Oversidder" 

sollte

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

2. sein, wenn $hold1 etwas anderes als NULL ist, false, 0 .. (jeder falsy Wert) diese erste Bedingung wird immer sei wahr, auch wenn $hold1=='foo'

Fazit:

Was Sie wollen, ist:

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

In Fällen wie diesem ist es immer eine gute Idee, das Handbuch zu konsultieren:
Comparison Operators
Logical Operators