INNER JOIN没有给我所需的所有信息

时间:2015-04-13 18:24:20

标签: php mysqli

我有三张桌子:

1-课程表: 在这个表中课程存储一般。

course_id
course_code
course_name
credits
course_desc
semester_ava    

2-课程课程: 在此表中,用户从Courses表中选择存储的课程

course_id
curriculum_id
set_number

3-先决条件表: 在此表中,用户插入某些课程的先决条件。

course_id
prereq_id
set

我试图生成一个可以从这三个表中获取信息的数组

我需要提取某些课程和课程的所有课程每门课程的先决条件。

我的代码我有两个问题

1-它提取仅具有先决条件的课程。例如,如果课程有10门课程,其中4门课程有必修课程,则代码将生成包含4门课程的数组。我需要提取所有课程,包括先决条件和没有课程的课程。

2-现在我可以显示课程名称,但是先决条件课程显示为[prereq_id] => 10这是课程表中的course_id我怎么拉它也是数组中的信息?

这是我的代码

    $sql = "SELECT * FROM curriculum  WHERE major_code='$majorcode'  ORDER By startdate DESC LIMIT 1";
    $result = $mysqli->query($sql);

    if ($result->num_rows > 0) {


        while($row = $result->fetch_assoc()) {

    $ids= $row['curriculum_id'];

    }
    }
    }


    //I have edited the query according to @Marc B advice and it solved the first problem,but still have issue with the second problem.

$result2 = $mysqli->query("SELECT * FROM  curriculumcourses  INNER JOIN courses ON curriculumcourses.course_id = courses.course_id LEFT JOIN prerequisites ON courses.course_id=prerequisites.course_id  where curriculum_id='$ids' ");







    ?>

    <?php
    for ($x = 1; $x <= $mysqli->affected_rows; $x++) {
        $rows[] = $result2->fetch_assoc();

    }


    echo "<pre>";
    print_r($rows);
    echo "</pre>";


    ?>

0 个答案:

没有答案