簡體   English   中英

如果條件在For循環內

[英]If Condition Inside a For Loop

我有一個查詢與$userid

$loginid = 2;
$sql = mysql_query( 'SELECT cc.name, c.fullname, c.userid FROM mdl_course c, mdl_coursecat cc WHERE c.course = cc.id');
echo '<table>';
while($row = mysql_fetch_array($sql))
{
  $userid = $row['userid'];
  echo '<tr><td>';
  if($userid == $loginid)  
  {
    echo '<a href="">go to course</a>';
  }
  else
  {
    echo 'you dont have permissions to go';
  }
  echo '</td></tr>';
}
echo '</table>';      

我的問題是它不在else語句中。 誰能說出問題所在?

第一個非常大的問題是,您將$sql用作數組,但是mysql_query()返回資源。 您需要使用mysql_fetch_assoc() 無論如何,因為$ss將是數組的元素,所以必須根據其類型(數組而不是對象)使用它。 因此,您應該具有以下內容:

while ($ss = mysql_fetch_assoc($sql))
{
   $userid = $ss['userid'];

   // Do other stuff
}

第二個問題是您沒有在else的句子中使用單引號。

while($ss = mysql_fetch_object($sql))替換foreach($sql as $ss) while($ss = mysql_fetch_object($sql)) 然后,循環將實際起作用。 您不能直接遍歷mysql結果集,但需要使用mysql_fetch_*函數之一來檢索行。

要擺脫語法錯誤,請將echo 'you don't have permissions to go';替換為echo 'you don't have permissions to go'; echo 'you don\\'t have permissions to go'; echo "you don't have permissions to go";

我會說問題出在這里:

while($row = $mysql_fetch_array($sql))

因為mysql_fetch_array()是函數,而不是變量。

這里: echo 'you don't have permissions to go'; 替換為echo 'you don\\'t have permissions to go'; 它將“ don't的撇號視為字符串的結尾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM