这个功能如何运作?提出这个循环:
while ($rows=mysqli_fetch_row) {
do this and that...
}
基本上问题是: 每次调用此函数时,它都会返回下一行,直到没有它为止, 所以,如果再次调用它,条件就变为FALSE了吗? 所以,如果你在这个循环之后再次调用这个函数,它会返回哪一行? 感谢。
答案 0 :(得分:6)
一旦到达结果的末尾,它将继续返回false
。
如果您希望能够在循环后再次获取行,可以使用mysqli_data_seek($result, 0)
倒回到开头。
答案 1 :(得分:3)
在该循环之后调用mysqli_fetch_row()
将返回false,因为光标已到达结尾。这就是循环结束的原因,因为在最后一次迭代中,赋值将是false
值,这将打破循环。
要重置为结果集的开头:
mysqli_data_seek($result, 0);
另一种方法是构建一个要再次使用的行数组:
while ($row = mysqli_fetch_row) {
$data[] = $row;
do this and that...
}
然后您可以foreach
稍后$data
。
答案 2 :(得分:0)
如果你想知道它是如何工作的,那么该函数会维护一个内部数据指针,它跟踪它所在的记录(只是一个带数字的变量),每次调用它时它都会将指针递增1,为了自己设置指针,您需要使用已经概述的mysqli_data_seek()
函数。