在foreach中if或statement的问题

时间:2017-01-12 22:05:30

标签: php twitter-bootstrap

如果$ hold1或$ hold2 =“Oversidder”,尝试使更新按钮变为红色(危险引导)但运行所有按钮时变为红色。它使用正确的值来回显来自DB的行。

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>';
}

1 个答案:

答案 0 :(得分:1)

下面

if ($hold1 || $hold2 = "Oversidder")
你有两个错误:

1。 =是为某事物分配值的运算符,但您要进行比较,这将是==(&#34;懒惰&#34; )或===(&#34;确切&#34; - 包括类型)。

所以这个

$hold2 = "Oversidder"

应该是

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

2。如果$hold1不是NULLfalse0,..(任何假值)这个第一个条件即使$hold1=='foo'

,也永远都是如此

结论:

你想要的是:

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

在这种情况下,查阅手册总是一个好主意:
Comparison Operators
Logical Operators