当它应该说数字4时,PHP循环4次

时间:2011-01-09 15:13:21

标签: php while-loop

得到这个代码让我感到不安并渴望接受任何帮助!

$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 个答案:

答案 0 :(得分:3)

您的$x++;仅在else上执行。为了让它在每次迭代时递增,您需要删除else

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

  $x++;
}

只是旁注:$row似乎与$me$x无关。我假设你的循环包含一些你已经省略的代码,但仅此一点可能会回答你的问题。

答案 1 :(得分:0)

你在其他方面正在贬值$ x,这永远不会被执行。

您需要在与echo相同的部分进行增量。

所以:

$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++;
  } 
}