Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP嵌套While循环只能在mysqli_fetch_数组中工作一次_Php_Mysql_Loops_While Loop - Fatal编程技术网

PHP嵌套While循环只能在mysqli_fetch_数组中工作一次

PHP嵌套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_

这个问题中有嵌套的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_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代码的上下文中展示如何使用它。