0

如何在 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;
    }
4

3 回答 3

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;
}
于 2012-06-11T02:17:26.197 回答
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;
}
于 2012-06-10T20:29:47.853 回答
0

当您从数据库中提取数据时,您不能这样做。您还没有阅读下一行,mysql_fetch_array()所以您不能直接跳到下一行。

您必须首先使用所有结果填充一个数组以操作数组的“索引”。或者,您可以在循环中执行附加mysql_fetch_array()操作以读取下一行。

于 2012-06-10T20:02:09.550 回答