データベースに3つのテーブルがあります。学生、モジュール、関係リレーションテーブルの各行には、学生IDとモジュールIDが含まれています(つまり、学生が使用するモジュールが含まれています)。ネストされたループで複数のデータベーステーブルをループする?
私はリレーションテーブルをループし、特定の学生が取っているすべてのモジュールを見つけようとしています。次に、各モジュールの詳細(例:名前とモジュールコード)をプリントアウトします。
私は入れ子にしたループでこれをしようとしていますが、insideループは1回だけ実行され、最初のモジュールが出力されます。私はこれが私のwhileループ内で2番目の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"];
}
}
}
}
?>
誰でも私を助けてくれますか?
ヒント: 'INNER JOIN' –