我执行了一个查询,并在名为$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
开始。
如果我删除了循环上方的块,那么循环会显示{I},正如我原先预期的那样。
为什么循环会受到其上方块的影响?
提前感谢您抽出宝贵时间。欢呼声。
答案 0 :(得分:2)
每次调用mysql_fetch_array()
都会使结果资源$raw_results
中的记录指针前进。因此,初始调用已将其提升到第二条记录。下一个调用,无论是循环调用还是单独调用,都将检索下一个(第二个)行。
要将其倒回到第一条记录,您可以使用mysql_data_seek()
:
mysql_data_seek($raw_results, 0);
答案 1 :(得分:0)
这是因为第一次使用mysql_fetch_array
时它返回第一行并将指针移动到下一行。