[英]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.