2015-07-10 16 views
-1

我想從mysql中跳過一條記錄,當該記錄與變量值匹配時,使用php。跳過特殊編號的行

$row['uni_id']是我的數據庫表中的一行中的id,並且$_SESSION['uid']在會話中存儲了一個id。當ID匹配時,該記錄應該被跳過。但它不起作用。你看到這個問題嗎?

while($row = mysql_fetch_array($res,MYSQL_ASSOC)){ 
    if ($row['uni_id'] == $_SESSION['uid']){ 
     continue; 
    } 
    $_SESSION['new_img']=$row['pic_add'];enter code here 
    $image= $row['pic_add']; 
    echo "<tr><td>"; 
    echo "{$row['fname']} {$row['lname']}"; 
    echo "</td><td>"; 
    echo $row['street']; 
    echo "</td><td>"; 
    echo $row['city']; 
    echo "</td><td>"; 
} 
mysql_free_result($res); 
+1

大約150年前PHP的mysql_ API已被棄用。擁抱現代。 – Strawberry

回答

0

你可以試試下面的代碼嗎?

<?php 
while($row = mysql_fetch_array($res,MYSQL_ASSOC)){ 
    if ($row['uni_id'] != $_SESSION['uid']){ 
     $_SESSION['new_img'] = $row['pic_add']; 
     $image= $row['pic_add']; 
     echo "<tr><td>"; 
     echo "{$row['fname']} {$row['lname']}"; 
     echo "</td><td>"; 
     echo $row['street']; 
     echo "</td><td>"; 
     echo $row['city']; 
     echo "</td><td>"; 
    }  
} 
mysql_free_result($res); 
?> 
+0

它不起作用 –

0

我認爲你是以錯誤的方式使用條件。

下面的代碼可能會對您有所幫助。

while($row = mysql_fetch_array($res,MYSQL_ASSOC)){ 
if ($row['uni_id'] == $_SESSION['uid']){ 
    // do nothing 
} 
else{ 
    $_SESSION['new_img']=$row['pic_add']; 
    $image= $row['pic_add']; 
    echo "<tr><td>"; 
    echo "{$row['fname']} {$row['lname']}"; 
    echo "</td><td>"; 
    echo $row['street']; 
    echo "</td><td>"; 
    echo $row['city']; 
    echo "</td><td>"; 
} 

}

mysql_free_result($res); 
+0

我嘗試了但它不起作用 –

+0

請你告訴我你正在得到什麼錯誤 –

0

你開始處理結果在PHP之前,您應該調整你的MySQL查詢。

解決方案將取決於您的查詢。如果您的查詢是這樣的:

select * from table 

你應該將其更新到:

select * from table WHERE uid <> "$_SESSION['uid']" 

如果你無法控制MySQL查詢,那麼你就可以改變你的PHP代碼:

while($row = mysql_fetch_array($res,MYSQL_ASSOC)){ 

     if ($row['uni_id'] != $_SESSION['uid']){ 

     $_SESSION['new_img']=$row['pic_add'];enter code here 
     $image= $row['pic_add']; 
     echo "<tr><td>"; 
     echo "{$row['fname']} {$row['lname']}"; 
     echo "</td><td>"; 
     echo $row['street']; 
     echo "</td><td>"; 
    echo $row['city']; 
     echo "</td><td>"; 
     } 
    } 
    mysql_free_result($res); 
+0

好主意,但請使用預準備語句來禁用SQL注入。 –

0

試試這個

while($row = mysql_fetch_array($res,MYSQL_ASSOC)){ 

    if ($row['uni_id'] != $_SESSION['uid']){ 

    $_SESSION['new_img']=$row['pic_add']; 
    $image= $row['pic_add']; 
    echo "<tr><td>"; 
    echo "{$row['fname']} {$row['lname']}"; 
    echo "</td><td>"; 
    echo $row['street']; 
    echo "</td><td>"; 
    echo $row['city']; 
    echo "</td><td>"; 
    } 
} 
    mysql_free_result($res); 
0

試試這段代碼

while($row = mysql_fetch_array($res)) 
    { 
     $t=''; 
     if($row['uni_id'] != $_SESSION['uid']) 
     { 
      $_SESSION['new_img']=$row['pic_add'];//enter code here 
      $image= $row['pic_add']; 
      $t.="<tr>"; 
      $t.="<td>{$row['fname']} {$row['lname']}</td>"; 
      $t.="<td>".$row['street']."</td>"; 
      $t.="<td>".$row['city']."</td>"; 
      $t.="</tr>"; 
     } 
     echo $t; 
    } 
    mysql_free_result($res); 
+0

謝謝你提及。我編輯了代碼:) – DinukaD

0
while($row = mysql_fetch_array($res,MYSQL_ASSOC)){ 

    if ($row['uni_id'] !== $_SESSION['uid']){ 

    $_SESSION['new_img']=$row['pic_add']; 
    $image= $row['pic_add']; 
    echo "<tr><td>"; 
    echo "{$row['fname']} {$row['lname']}"; 
    echo "</td><td>"; 
    echo $row['street']; 
    echo "</td><td>"; 
    echo $row['city']; 
    echo "</td><td>"; 

    } 

} 
mysql_free_result($res); 

注:不要使用MySQL。它被棄用。使用PDO。