彼此内部的两个循环不起作用

时间:2015-12-14 15:46:08

标签: php web

嗨,这是我的代码:

while ($row = mysql_fetch_array($res)){
    echo "<br>looped firist loop <br>";

    while ($row2 = mysql_fetch_array($res2)){
        echo "<br>looped second loop <br>";

    }

}

显示

循环的firist循环

循环第二个循环

循环第二个循环

循环的firist循环

循环的firist循环

问题是:在第二个循环中循环直到数组完成。然后第二次调用第一个循环时,它不会从数组的开头开始。所以循环已达到最大值。这是什么问题,我该如何解决?

1 个答案:

答案 0 :(得分:1)

如果要再次迭代结果集指针,则需要使用mysql_data_seek()将结果集指针重置回$res2的开头:

while ($row = mysql_fetch_array($res)){
    echo "<br>looped firist loop <br>";

    mysql_data_seek($res2, 0);

    while ($row2 = mysql_fetch_array($res2)){
        echo "<br>looped second loop <br>";

    }

}

但MySQL扩展已经过时并且已弃用,并且最新版本的PHP不再存在,所以请进入21世纪并开始使用MySQLi或PDO

嵌套循环也无可救药地低效,并且可能有更好的方法来实现你想要的东西