[英]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.