我执行了一个查询,并在一个名为$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
。
为什么循环受到它上面的块的影响?
提前感谢您的宝贵时间。欢呼。
每次调用mysql_fetch_array()
都会移动结果资源$raw_results
中的记录指针。因此,初始调用已经将其推进到第二个记录。下一次调用,无论是在循环中还是单独调用,都将检索下(第二)行。
要倒回到第一条记录,可以使用mysql_data_seek()
:
mysql_data_seek($raw_results, 0);
这是因为您第一次使用mysql_fetch_array
时,它返回第一行并将指针移动到下一行。