移动mysql_fetch_array指针

时间:2012-06-10 20:00:48

标签: php mysql

如何在while循环中间移动mysql_fetch_array指针? 像这样的东西:

 while ($subject = mysql_fetch_array($subject_qry))
{
 $output = "<div class=\"left\" id=\"{$subject['id']}\"></div>";
  next($subject);
     $output = "<div class=\"right\" id=\"{$subject['id']}\"></div>";
  return $output;
    }

3 个答案:

答案 0 :(得分:1)

这个怎么样:

$counter = 0;
while ($subject = mysql_fetch_array($subject_qry))
{
  if ($counter % 2 == 0)
  {
     $output = "<div class=\"left\" id=\"{$subject['id']}\"></div>";
  }
  else
  {
     $output = "<div class=\"right\" id=\"{$subject['id']}\"></div>";
  }
  // do something with $output here...
  $counter ++;
}

或者你可以用布尔值实现相同的结果:

$left = true;
while ($subject = mysql_fetch_array($subject_qry))
{
  if ($left)
  {
     $output = "<div class=\"left\" id=\"{$subject['id']}\"></div>";
  }
  else
  {
     $output = "<div class=\"right\" id=\"{$subject['id']}\"></div>";
  }
  // do something with $output here...
  $left = !$left;
}

答案 1 :(得分:1)

有一些事情对你的例子没有意义。首先,在检索结果时,不能使用mysql_fetch_array的名称。 Mysql_fetch_array使用数字索引,而不是列名。其次,您不会在循环while语句中返回值。你要么建立一个字符串,要么在你进行循环时回显它。

你有没有试过这样的事情:

$counter = 1;
while ($subject = mysql_fetch_array($subject_qry)) {
    echo "<div class=\"left\" id=\"{$subject[0]}\"></div>";
    mysql_data_seek($subject_qry,$counter);
    $subject = mysql_fetch_array($subject_qry);
    echo "<div class=\"right\" id=\"{$subject[0]}\"></div>";
    $counter=$counter+2;
}

答案 2 :(得分:0)

从数据库中提取数据时,无法执行此操作。您尚未阅读mysql_fetch_array()的下一行,因此您不能跳到下一行。

您必须先填充一个包含所有结果的数组来操作数组的“索引”。或者,您可以在循环中执行额外的mysql_fetch_array()来读取下一行。