【问题标题】:Cannot loop through mysql results within nested foreach loops more than once无法在嵌套的 foreach 循环中多次循环遍历 mysql 结果
【发布时间】:2012-11-01 15:16:27
【问题描述】:

我发现我不能多次循环遍历一组 mysql 结果。这是我不知道的正常现象吗?

我有 2 个这样的嵌套 foreach 循环:

foreach ($items as $item) {
    echo $item." ---------------<br>";
    // loop through set of results
    foreach ($mysqlresults as $result) {
        // loop through result
        echo $result." ^^^^^^^^^^<br>";
        while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
            print_r($row);
            echo "<br>";
        }
    }
}

哪个输出:

item 1 ---------------
ResourceID#1 ^^^^^^^
row 1 data
row 2 data
row 3 data
row 4 data
ResourceID#2 ^^^^^^^
row 1 data
row 2 data
row 3 data
row 4 data
ResourceID#3 ^^^^^^^
row 1 data
row 2 data
row 3 data
row 4 data
item 2 ---------------
item 3 ---------------
item 4 ---------------
item 5 ---------------

是否有充分的理由说明它无法重新循环结果,或者我做错了什么?

谢谢。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    您不能,因为mysql_fetch_array 在结果中移动光标。您可以使用mysql_data_seek($result, 0) 来回退。

    【讨论】:

    • 谢谢。你能详细说明一下吗? “在结果中移动光标”......但我告诉它再做一次......?
    • 另外,在使用mysql_data_seek之前,我必须先使用mysql_fetch_array吗?
    • 当你读取一行时,你会移动到下一行,就像你在阅读一个文本文件时一样。
    猜你喜欢
    • 1970-01-01
    • 2015-10-05
    • 2010-12-17
    • 1970-01-01
    • 2021-11-20
    • 2011-12-02
    • 2023-04-11
    • 1970-01-01
    相关资源
    最近更新 更多