如果使用 PHP 选择了单选按钮(当前),如何在 Mysql 数据库中为出勤值添加 +1?

Posted

技术标签:

【中文标题】如果使用 PHP 选择了单选按钮(当前),如何在 Mysql 数据库中为出勤值添加 +1?【英文标题】:How to Add +1 to attendance value in the Mysql database if Radio button(present) is selected with PHP? 【发布时间】:2013-11-14 12:52:08 【问题描述】:

对不起,我想在我的大学使用 phpmysql 为数据库制作出勤表。

数据库表:

 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上的提交按钮后我应该制作的表格 它会将数据POST到attend_process.php。

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

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

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

【问题讨论】:

【参考方案1】:

表单提交后,您将在attend_process.phpPHP超级全局$_POST中收到表单内容。

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

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

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

这是非常低效的,因为它会为每个在校学生使用 1 个查询。

【讨论】:

您能解释一下实现相同目标的更有效方法吗?

以上是关于如果使用 PHP 选择了单选按钮(当前),如何在 Mysql 数据库中为出勤值添加 +1?的主要内容,如果未能解决你的问题,请参考以下文章

当选择当前行时,KnockoutJS选中了单选按钮

如何检查是不是使用 JavaScript 选择了单选按钮?

如何确定是不是选中了单选按钮? [复制]

在会话中存储单选按钮值 - PHP

离子单选按钮验证

如果选择了单选,则jQuery show hide div