PHP зацикливается 4 раза, когда надо сказать число 4 - PullRequest
0 голосов
/ 09 января 2011

Получил этот код, который беспокоит меня, и я готов принять любую помощь!

$x=0;
while($row = mysql_fetch_array($result))
{
  if ($me == $x) 
  {
    echo "You are $me";
    break;
  } 
  else 
  {
    $x++;
  }
}

Когда я включаю перерыв;он возвращает:

Вы выбрали 1

Однако, когда я удаляю разрыв;он возвращает

Вы выбрали 1 Вы выбрали 1 Вы выбрали 1 Вы выбрали 1

В настоящее время в базе 6 записей, и есликод должен был работать, он будет отображать «Вы 4-й»

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 09 января 2011

Ваш $x++; выполняется только на else. Чтобы увеличить его на на каждой итерации , необходимо удалить else:

$x=0;
while($row = mysql_fetch_array($result))
{
  if ($me == $x) 
  {
    echo "You are $me";
    break;
  }

  $x++;
}

Просто примечание: $row здесь не похоже на $me и $x. Я предполагаю, что ваш цикл содержит какой-то другой код, который вы пропустили, но он сам по себе, вероятно, ответит на ваш вопрос.

0 голосов
/ 09 января 2011

В остальных случаях вы пишете $ x, это никогда не выполняется.

Вы должны сделать приращение в той же части, что и эхо.

Так что либо:

$x=0;
while($row = mysql_fetch_array($result))
{
  if ($me == $x) 
  {
    echo "You are $me";
    $x++;

  } 
  else 
  {
    $x++;
  }
}

Или, если вам никогда не нужно увеличивать $ x без повторения:

$x=0;
while($row = mysql_fetch_array($result))
{
  if ($me == $x) 
  {
    echo "You are $me";
    x++;
  } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...