2013-10-30 80 views
-3

这里是我的问题的一个形象,我不能发表图片尚未.. http://rune-shadows.com/hiscores/img.PNG http://rune-shadows.com/hiscores/img1.PNGPHP()语句问题

为什么我的if语句让Nic5一个主持人图标,当他的playerRights 0 ?

while($row = $res->fetch_assoc()) { 
    if($temp_score!=$row['0']) 
    $rank++; 
    $pr = $row['playerRights']; 
    echo '<tr> 
     <td>'.($rank).'</td>'; 
     if ($pr = 1) { 
      echo '<td><img src ="img/mod.gif">&nbsp;<a href="personal.php?name='. htmlspecialchars($row['username']) .'">'. htmlspecialchars($row['username']) .'</a></td>'; 
     } else { 
      echo '<td><a href="personal.php?name='. htmlspecialchars($row['username']) .'">'. htmlspecialchars($row['username']) .'</a></td>'; 
     } 

     echo ' 
      <td>'.number_format($row['LVL']).'</td> 
      <td>'.number_format($row['XP']).'</td> 
     </tr>'; 
    $count++; 
    } 
+4

'='是**赋值运算符**,''==是用于比较。 – deceze

+0

已修复!谢谢! :) – Nic

+6

这个问题似乎是题外话,因为它是999个新手的错误之一,不需要另一个专门的问题。 – deceze

回答

1

您需要使用的比较:

if ($pr === 1) { 
...  
} 

$pr = 1永远是正确的,因为你设置一个变量,而不是比较它。

1

取而代之线:

if ($pr = 1) 

你应该有:

if ($pr == 1) 

您应该使用==而不是=运算符。

在PHP中==相等,=表示赋值。 现在你可以理解为什么表达式“($ pr = 1)”总是成立。

PHP operator documentation

1
if ($pr = 1) { 

应该是

if ($pr === 1) { 

或至少

if ($pr == 1) { 
+1

为什么downvote?大声笑 – DanFromGermany

+1

Upvoted,因为它不应该是-1。 –

+0

虽然它是重复的,但是这里有一个+1 ===':) –