如何在php和mysql中分配学生多个课程?

时间:2018-08-01 10:34:18

标签: php mysql arrays categories

我正在研究PHP,我们有一个昨天得到的项目。 我需要建立一个管理学校的系统。 我需要创建课程和学生,并且需要能够将一个学生分配给多个课程。 我需要能够显示每个课程的学生列表,如果我选择一个学生,则需要显示他列出的所有课程。 我的问题是如何正确计划数据库以便能够显示所有这些数据。 我想我在每门课程中都需要使用一系列的学生证,但是我不知道从哪里开始以及如何开始(我们没有像其他很多东西一样学习它……)。

我们将不胜感激。


新内容:

我已经创建了3张桌子。 1.学生 2.课程 3.课程学生(具有: - ID - 学生卡 -课程 )

我需要编写查询来帮助计算每门课程列出的人数。

这是我的代码:

<table id="courses" class="table table-striped table-bordered" style="width:100%">
        <thead>
            <tr>
                <th class="text-center">#</th>
                <th class="text-center">שם הקורס</th>
                <th class="text-center">כמות סטודנטים בקורס</th>

            </tr>
        </thead>
        <tbody>
    <?php
    $counter=1;
    $sql = "SELECT * FROM courses";
    $result = mysqli_query($conn, $sql);

    while($row = mysqli_fetch_assoc($result)){ 
        echo '
            <tr class="text-center">
                <td>'. $counter .'</td>
                <td>'. $row['coursename'] .'</td>
                <td>';
                $sqlstudents = "SELECT * FROM coursestudent INNER JOIN students ON coursestudent.studentid=students.studentid WHERE courseid='$counter'";
                $resultstudents = mysqli_query($conn, $sqlstudents);
                $rowcount=mysqli_num_rows($resultstudents);
                echo  $rowcount.'</td><tr>';
            $counter++;  
    }           
        ?>       
        </tbody>
    </table> 

每门课程返回0。

2 个答案:

答案 0 :(得分:0)

您将需要三个表。一个用于存储有关学生的信息,一个用于存储班级信息,一个连接表用于存储将哪个学生分配给哪个班级-基本上是多对多关系。 This answear可能会有所帮助。

答案 1 :(得分:0)

这不是此类问题的正确答案。因为我有一些知识,但我仍然在向您说明如何做。

根据您的问题:My question is how to plan the DB correctly in order to be able to show all this data.

这是您可以根据需要计划数据库的方式:

1) You have to create 3 tables mainly one will be students where you are going to 
   enter student information.


2)Another one will be courses table where you have all course information.



3)And another table will be Student_courseslist table where you can assign courses to 
   students and it will show you the  list of students assigned to that particular 
  course.