首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在A While循环中执行PHP While循环

问在A While循环中执行PHP While循环
EN

Stack Overflow用户
提问于 2016-05-16 06:23:59
回答 4查看 8.8K关注 0票数 0

我试图在另一个php while循环中执行php while循环,但是当我进入第二个循环时,它不会返回到第一个循环,而是再次循环--下面是我使用的代码:

数据库连接字符串位于单独的模块中。第一个while循环应该循环两次,但是当它到达第二个数据库while循环时会发生什么,这个循环返回正,它会影响第一个循环,所以我只从第一个循环得到一个循环。谁能告诉我怎样才能改变这个问题以避免这个问题?

以下是数据库中的两个循环:

代码语言:javascript
复制
while($row = $result->fetch_assoc()) {

    // Show/Hide Regions:

    error_reporting(-1);
    ini_set('display_errors', 'On');

    //Access our class.
    $db_Class = new db_Class;
    $conn = ($db_Class->db_conn());

    $sql = "SELECT id, region FROM tbl_region;";
    $result = $conn->query($sql);

          if ($result->num_rows > 0) {
        // output data of each row
        $counter = 0; //Set count to 1
        while($row = $result->fetch_assoc()) {
            $counter++; //Increment counter by 1's
            $rID = $row["id"];
            ?>
                Output Region Here!

               <?php 

            //Output companies for this region.

            $sql = "SELECT
                    tbl_company.company_name,
                    tbl_company.group_number,
                    tbl_region.region
                    FROM
                    tbl_region
                    INNER JOIN tbl_company ON tbl_company.region_id = tbl_region.id
                    WHERE
                    $rID = tbl_company.region_id
                    ORDER BY
                    tbl_company.company_name ASC
                    ";
            $result = $conn->query($sql);

            if ($result->num_rows > 0) {
                // output data of each row
                while($row = $result->fetch_assoc()) {

                    echo $row["company_name"]."<br>";

                    }
                }
            echo "A";
            echo '</div>';
            }
            } ?>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-05-16 06:27:03

用我在这里做过的任何其他$row和$resultInner示例更改内环name..for和$resultInner。

代码语言:javascript
复制
<?php 
while($row = $result->fetch_assoc()) {
    if ($result->num_rows > 0) {
        $counter = 0; //Set count to 1
        while($row = $result->fetch_assoc()) {
            $counter++; //Increment counter by 1's
            $rID = $row["id"];
            ?>
                Output Region Here!

            <?php 
            $sql = "SELECT
                    tbl_company.company_name,
                    tbl_company.group_number,
                    tbl_region.region
                    FROM
                    tbl_region
                    INNER JOIN tbl_company ON tbl_company.region_id = tbl_region.id
                    WHERE
                    $rID = tbl_company.region_id
                    ORDER BY
                    tbl_company.company_name ASC
                    ";
            $resultInner = $conn->query($sql);
            if ($resultInner->num_rows > 0) {
                while($rowInner = $resultInner->fetch_assoc()) { // Change $row to $rowInner
                    echo $rowInner["company_name"]."<br>";

                }
            }
            echo "A";
            echo '</div>';
        }
    }
} 
?>
票数 3
EN

Stack Overflow用户

发布于 2016-05-16 06:28:44

对于$result,您应该使用一个不同的变量,比如2 like循环的$result2。这导致了冲突。

票数 1
EN

Stack Overflow用户

发布于 2016-05-16 06:30:02

您用第二个$行/$结果覆盖了第一个$行/$结果。尝试为第二组结果使用不同的名称。

代码语言:javascript
复制
// Show/Hide Regions:

error_reporting(-1);
ini_set('display_errors', 'On');

//Access our class.
$db_Class = new db_Class;
$conn = ($db_Class->db_conn());

$sql = "SELECT id, region FROM tbl_region;";
$result = 

$conn->query($sql);

  if ($result->num_rows > 0) {
// output data of each row
$counter = 0; //Set count to 1
while($row = $result->fetch_assoc()) {
    $counter++; //Increment counter by 1's
    $rID = $row["id"];
    ?>
        Output Region Here!

       <?php 

    //Output companies for this region.

    $sql = "SELECT
            tbl_company.company_name,
            tbl_company.group_number,
            tbl_region.region
            FROM
            tbl_region
            INNER JOIN tbl_company ON tbl_company.region_id = tbl_region.id
            WHERE
            $rID = tbl_company.region_id
            ORDER BY
            tbl_company.company_name ASC
            ";
    $result2 = $conn->query($sql);

    if ($result2->num_rows > 0) {
        // output data of each row
        while($row2 = $result2->fetch_assoc()) {

            echo $row2["company_name"]."<br>";

            }
        }
    echo "A";
    echo '</div>';
    }
    } ?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37247869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档