我执行了一个查询,并在一个名为$raw_results的变量中捕获了结果;
然后,我有了以下内容:
$record_set = mysql_fetch_array($raw_results);
echo "<pre>";
print_r($record_set);
echo "</pre>";
echo "<hr />";在它的正下方,我有:
while ($record_set = mysql_fetch_array($raw_results))
{
echo "<pre>";
print_r($record_set);
echo "</pre>";
}我很惊讶(也很困惑) while loop是从record #2 in the array而不是record #1开始的。
如果我删除循环上面的块,那么循环会像我最初预期的那样显示record #1。
为什么循环会受到它上面的块的影响?
提前感谢您抽出时间来。干杯。
发布于 2011-12-31 04:36:26
每次调用mysql_fetch_array()都会使结果资源$raw_results中的记录指针前进。因此,最初的调用已经将其前进到第二个记录。下一次调用,无论是循环调用还是单独调用,都将检索下一(第二)行。
要将其倒回到第一条记录,可以使用mysql_data_seek()
mysql_data_seek($raw_results, 0);发布于 2011-12-31 04:36:52
这是因为您第一次使用mysql_fetch_array时,它会返回第一行,并将指针移动到下一行。
https://stackoverflow.com/questions/8683810
复制相似问题