PHP嵌套While循环只能在mysqli_fetch_数组中工作一次
这个问题中有嵌套的while循环。请检查代码01和代码02 代码01PHP嵌套While循环只能在mysqli_fetch_数组中工作一次,php,mysql,loops,while-loop,Php,Mysql,Loops,While Loop,这个问题中有嵌套的while循环。请检查代码01和代码02 代码01 $sql2 ="select * from view"; $view_list = mysqli_query($con,$sql2); // Assume there are 5 items $sql ="select * from apartment"; $result = mysqli_query($con,$sql); while($row = mysqli_fetch_array($result, MYSQLI_
$sql2 ="select * from view";
$view_list = mysqli_query($con,$sql2); // Assume there are 5 items
$sql ="select * from apartment";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
while ($view_row = mysqli_fetch_array($view_list, MYSQLI_ASSOC)) {
$view_row['view_name']." , ";
}
<br>
}
$sql2=“从视图中选择*”;
$view_list=mysqli_查询($con,$sql2);//假设有5项
$sql=“选择*公寓”;
$result=mysqli\u查询($con,$sql);
而($row=mysqli\u fetch\u数组($result,mysqli\u ASSOC)){
而($view\u row=mysqli\u fetch\u数组($view\u list,mysqli\u ASSOC)){
$view_row['view_name']。“,”;
}
}
结果:
A、 B,C,
代码02
$sql ="select * from apartment";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
$sql2 ="select * from view";
$view_list = mysqli_query($con,$sql2);
while ($view_row = mysqli_fetch_array($view_list, MYSQLI_ASSOC)) {
$view_row['view_name']." , "; //This loop works few times as expected
}
<br>
}
$sql=“选择*公寓”;
$result=mysqli\u查询($con,$sql);
而($row=mysqli\u fetch\u数组($result,mysqli\u ASSOC)){
$sql2=“从视图中选择*”;
$view\u list=mysqli\u查询($con,$sql2);
而($view\u row=mysqli\u fetch\u数组($view\u list,mysqli\u ASSOC)){
$view_row['view_name'].“,”;//此循环按预期工作几次
}
}
结果:
A、 B,C,
A、 B,C,
A、 B,C,
A、 B,C,
A、 B,C,
我认为代码01和代码2应该返回相同的输出。。。。但编码一个嵌套循环只工作3次(即父循环的第一个循环)
所以我想知道为什么代码01不能像我预期的那样工作?也就是说。为什么代码01和代码02的结果不同?您必须使用
在$view_list前执行一段时间,将数组的内部指针向前移动。在第二个循环中,指针已经指向数组的末尾,因此脚本不会打印任何内容。您必须在orther中执行类似于
mysqli\u data\u seek($view\u list,0)
的操作来重置指针
$sql2 ="select * from view";
$view_list = mysqli_query($con,$sql2); // Assume there are 5 items
$sql ="select * from apartment";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
mysqli_data_seek($view_list, 0)
while ($view_row = mysqli_fetch_array($view_list, MYSQLI_ASSOC)) {
$view_row['view_name']." , ";
}
echo '<br>';
}
$sql2=“从视图中选择*”;
$view_list=mysqli_查询($con,$sql2);//假设有5项
$sql=“选择*公寓”;
$result=mysqli\u查询($con,$sql);
而($row=mysqli\u fetch\u数组($result,mysqli\u ASSOC)){
mysqli_数据_搜索($view_列表,0)
而($view\u row=mysqli\u fetch\u数组($view\u list,mysqli\u ASSOC)){
$view_row['view_name']。“,”;
}
回声“
”;
}
Buddy,这两个表之间有关系吗?第二个版本调用mysqli\u查询($con,$sql2)对于每个循环,都将返回循环每次迭代的结果。在第一个示例中,您在第一次迭代结束时到达$view_list
结果集的末尾。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接以供参考。如果链接页面发生更改,则仅链接的答案可能无效。一个好的答案总是会有一个解释,说明做了什么以及为什么这样做,不仅是为了OP,而且是为了未来的SO访客。如果你能给出一个例子,说明应该如何做以及在哪里做,这将改进这个答案。你应该在OP代码的上下文中展示如何使用它。