1

打扰一下,我想在我的大学使用 PHP 和 MySql 为数据库制作出勤表。

数据库表:

 student_id      student_name         Class     Attendance
 001             Adam                 1-B3      0
 002             Martin               1-B3      0
 003             Nina                 4-C1      0

考勤表 (attend.php) 将显示:

 ID      Name         Attendance
 001     Adam         (radio) Present  (radio) Not Present
 002     Martin       (radio) Present  (radio) Not Present
 003     Nina         (radio) Present  (radio) Not Present

假设有 1000 名学生,我使用 SQL 查询来显示表中的每个人,并根据需要的班级在每行中显示 2 个单选按钮。例子 :

<form method="POST" action="attend_process.php")
$cn=mysql_connect("host","localhost","") or die(mysql_error());
mysql_select_db(db_attendance,$cn) or die(mysql_error());
$sql = "SELECT student_id, student_name FROM tb_attendance WHERE Class='1-B3'";
$result = mysql_query($sql) or die(mysql_error());

echo "<table>";
echo "<tr><th>ID</th><th>Name</th><th>Attendance</th></tr>";

while($info=mysql_fetch_array($result)){
$id = $info['student_id'];
$name = $info['student_name'];
    echo "<tr><td>".$id."</td><td>".$name."</td><td><input type='radio' name='attend[$id]' value='Present'>Present &nbsp; <input type='radio' name='attend[$id]' value='Not_Present'>Not Present</td></tr>";
}
echo "</table><br/>
echo "<input type='submit' name='btnAbsent' value='Absent'>";
</form>

我应该制作的表格,在我单击attend.php 上的提交按钮后,它会将数据发布到attend_process.php。

在attend_process.php中,???如何在数据库中添加出勤值的值??? ???如何使用 $_POST['attend$id'] 制作变量以获取值'Present'???

它也基于他们的班级, 1. 如果一些学生不在场,那么出勤率不会增加。2.如果学生在场,出勤值将增加1(+1)

真的很抱歉,但我真的很困惑如何获取数据,然后根据他们的 ID 正确地将值添加到出勤值,因为每行中的单选按钮都有不同的名称,由他们的“ID”组成。先感谢您。我真的很感谢你的好意:)

4

1 回答 1

1

表单提交后,您会在超级全局中收到attend_process.php表单的内容。PHP$_POST

特别是,您可以访问$_POST['attend'],它是一个数组,其键是学生 ID,值是Presentor Not_Present

您可以遍历此数组的所有值(假设您完全信任此表单的提交者!)并更新表中的“计数器”:

for($id => $attendance in $_POST['attend']) {
    if($attendance == 'Present') {
        mysql_query("UPDATE attendance SET Attendance = Attendance + 1 WHERE id = '$id'");
    }
}

这是非常低效的,因为它将使用每个当前学生 1 个查询。

于 2013-11-03T22:17:51.413 回答