2

私は問題があります。

class_tbl、subject_tbl、および *student_tbl の3 つのテーブルがあります。class_tbl には 3 つの列 *"class_id、subject_id、および student_id".* があり、subject_tbl には 4 つの列 *"subject_id,subject_name,subject_yr,subject_sem"* があり、最後に *student_tbl には 2 つの列 "student_id および student_name".* があります。

class_tbl には次の行があります。

**[class_id || subject_id || student_id]**

|| 1001   ||    2002    || 3003

|| 1002   ||    2003    || 3003

|| 1003   ||    2004    || 3003

subject_tbl には 5 つの行があります。

**[subject_id ||  subject_name  || subject_yr || subject_sem]**

|| 2002     ||    Math        ||    2010    || 1st

|| 2003     ||   Science      ||    2010    || 1st

|| 2004     ||    History     ||    2010    || 1st

|| 2005     ||      PE        ||    2010    || 1st

|| 2006     || Social Studies ||    2010    || 1st

student_tbl には 1 つの行があります: 実際の学生の数に応じて異なります

**[student_id || student_name]**

||   3003   ||  John Parker

ここでの目標は、クエリが最後の 2 つの科目 (体育と社会科) をエコーし​​て、それらを class_tbl に挿入できるようにすることです。エコーは、その学期と学年度中に 2 つの科目に 2 つのエントリがないことを教えてくれます。クエリは、class_tbl のエントリに既に含まれている数学、科学、および歴史のサブジェクトをエコーし​​ません。その学期と年度の欠落している科目を照会してエコーするにはどうすればよいですか? 本当に思いつきません。助けてtnx!

ここのコードは、その学年と学期のすべての科目を表示します。

            if (isset ($db1)&&$db1!=""){


            }

            <?php

                $student_id = $_POST['student_id'];
                $sem = $_POST['sem'];
                $yr = $_POST['yr'];

                $list = mysql_query("SELECT * 
                                    FROM
                                    class_tbl 
                                    LEFT JOIN
                                    subject_tbl
                                    ON
                                    class_tbl.subject_id = subject_tbl.subject ID
                                    WHERE
                                    student_id = '$student_id'
                                    OR
                                    subject_sem = '$sem' 
                                    OR
                                    subject_yr = '$yr' 
                                    ORDER BY 
                                    subject_id asc");

                while($row_list=mysql_fetch_assoc($list))
                {
                echo $row_list['subject_id'];

                if($row_list['subject_id']==$db1){echo "selected"; }

                echo $row_list['subject_name'];

                }

出力例は次のようになります。

「体育と社会」の科目が 2 つ不足しています。

4

1 に答える 1