从表单插入时加入2个变量

时间:2013-05-27 19:04:23

标签: php mysqli

不确定如何解决这个问题!我正在尝试创建一个学校课程评分图。我有一个包含4列和4行的表。课程水平和学生垂直。

这些列是从db生成的,如下所示:

<form action="insert.php" method="post">
<table>
<thead>
    <tr>
        <th>Name</th>
        <?
        $query = "SELECT classname FROM class ORDER BY cname LIMIT 3";

        if ($result = $mysqli->query($query)) {
            while ($row = $result->fetch_assoc()) {
                $classid = $row['classid'];
                echo '<th><div class="verticalText">'.$row['classname'].'</div></th>';
            }
        }
       ?> 
    </tr>
</thead>

现在,这就是我如何得到最直接的:

<tbody>
<?
$query = "SELECT studentid, studentname FROM students ORDER BY studentname";

if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_assoc()) {

        $studentid = $row['studentid'];

        echo '<tr>';
        echo '<td style="text-align:left;"><a href="#">'.$row["studentname"].'</a></td>';
        echo '<td>';
        echo '<input type="text" name="grade" id="grade" placeholder="--">';
        echo '</td>';   
        echo '</tr>';
    }

    /* free result set */
    $result->free();
}

/* close connection */
$mysqli->close();
?>  
</tbody>
</table>
<input type="submit" value="report" name="submit">
</form>

我的问题是。我如何在insert.php上将classid和studentid连接在一起,这样当我插入数据库时​​,我可以告诉每个学生有什么课程和成绩?

希望这有任何意义,并期待任何答案。

1 个答案:

答案 0 :(得分:0)

好的问题!

首先,你的类表需要自动增量id,这样你就可以获得对类行的干净引用(基于名称的引用被认为是不好的做法),之后你需要添加一个包含3列的第3个表:class_id, student_id和成绩。如果您愿意,可以在student_id和class_id上添加组合主键,以便强制组合是唯一的。 (我认为这就是你想要的)

这种链接数据的方式称为关系数据库:https://en.wikipedia.org/wiki/Relational_database

此字段设置称为多对多关系:http://en.wikipedia.org/wiki/Many-to-many_(data_model)

// So your relational table will look like:
- student_id (part of primary key and foreign key that points to the student)
- class_id (part of primary key and foreign key that points to the class)
- grade

这里有很多值得学习的内容,看一下这些文章并有所了解。祝好运! :)