Если условие внутри цикла - PullRequest
0 голосов
/ 27 ноября 2011

У меня есть проверка запроса с помощью $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.Кто-нибудь может подсказать, в чем может быть проблема?

Ответы [ 4 ]

2 голосов
/ 27 ноября 2011

Первая очень большая проблема заключается в том, что вы используете $sql в качестве массива, а mysql_query () возвращает ресурс. Вам нужно использовать mysql_fetch_assoc () . В любом случае, поскольку $ss будет элементом массива, вы должны использовать его в соответствии с его типом (массив, а не объект). Таким образом, вы должны иметь что-то вроде:

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

   // Do other stuff
}

Вторым является то, что вы не избежали одиночной кавычки внутри своего предложения в else.

1 голос
/ 27 ноября 2011

Я бы сказал, что проблема заключается здесь:

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

, поскольку mysql_fetch_array() - это функция, а не переменная.

1 голос
/ 27 ноября 2011

Заменить 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";.

0 голосов
/ 27 ноября 2011

Здесь: echo 'you don't have permissions to go'; Заменить на echo 'you don\'t have permissions to go'; Он видит апостроф don't как конец строки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...