簡體   English   中英

通過嵌套循環遍歷多個數據庫表?

[英]Looping through multiple database tables with nested loop?

我的數據庫中有三個表。 學生,模塊和關系。 關系表的每一行都包含一個學生ID和一個模塊ID(即,它包含一個學生所采用的模塊)。

我試圖遍歷關系表並找到特定學生所學的所有模塊,然后打印出每個模塊的詳細信息(例如名稱和模塊代碼)。

我正在嘗試使用嵌套循環執行此操作,但是內部循環僅運行一次並打印出第一個模塊。 我認為這與在while循環中使用第二個sql查詢和$m_id不會隨每次迭代更新有關。 到目前為止,這是我的代碼

<?php
        include 'connect.php';
        $sql = "SELECT * FROM relations WHERE student_id = '1'";
        $result = $conn->query($sql);
        if($result->num_rows > 0) {
            while($row = mysqli_fetch_array($result)) {
                $m_id = $row["module_id"];

                $sql = "SELECT * FROM modules WHERE module_id = $m_id";
                $result = $conn->query($sql);
                if($result->num_rows > 0) {
                    while($row = mysqli_fetch_array($result)) {
                        echo $row["module_code"];
                    }
                }
            }
        }
?>

誰能幫我這個忙嗎?

您可以通過以下方式更改SELECT查詢:它使用INNER JOIN將來自特定學生的所有模塊帶入一個查詢。 像這樣:

SELECT * FROM modules
INNER JOIN relations ON relations.module_id = modules.module_id
WHERE relations.student_id = 1;

這樣,它將帶與ID為1的學生有關系的所有模塊,假設您是要搜索其模塊的學生。 然后,您只需遍歷結果數組並從所需的模塊中獲取值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM