2013-10-30 144 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 ===':) –