我正在创建一个程序来获取学生出勤数据并将其存储在数据库中。我创建了student_table,用于在注册后存储学生详细信息,例如姓名,护照号码,班级。我创建了另一张桌子" attendance_table"。我已经在一个php文件中提取了学生的详细信息,并显示了附加列"出勤率"它将单选按钮值标记为存在或不存在。
我的问题是在标记出勤后我希望它存储在attendance_table中。由于详细信息是从student_table中提取的,因此如何将其存储在另一个表中。我是php的新手。感谢。
// FETCHING DATA FROM STUDENT_TABLE//
<tr>
<td><?php echo $row['student_name']; ?></td>
<td><?php echo $row['Passport_no'] ?></td>
<td><?php echo $row['Teacher'] ?></td>
<td><?php echo $row['Class'] ?></td>
<td><?php echo $row['Period'] ?></td>
<td>
Present<input required type="radio" name="attendance[<?php echo $row['stud_id'] ?>]" value="Present" checked>
Absent<input required type="radio" name="attendance[<?php echo $row['stud_id']; ?>]" value="Absent" >
</td>
</tr>
<?php } ?>
// ATTENDANCE TABLE //
表attendance
的表结构
DROP TABLE IF EXISTS `attendance`;
CREATE TABLE IF NOT EXISTS `attendance` (
`at_id` int(11) NOT NULL AUTO_INCREMENT,
`stud_id` int(11) NOT NULL,
`student_name` varchar(100) NOT NULL,
`Passport_no` varchar(100) NOT NULL,
`Class` varchar(100) NOT NULL,
`Period` varchar(100) NOT NULL,
`Status` varchar(100) NOT NULL,
`Date` date NOT NULL,
PRIMARY KEY (`at_id`)
)
答案 0 :(得分:0)
Dirie您需要做的是将每行中的数据放入https://www.w3schools.com/tags/tag_form.asp形式。选择单选按钮时,使用jquery / javscript触发提交。或者有一个名为“Present”的按钮/输入(提交),它将为您提交表格。
另一种选择是使用ajax(https://www.w3schools.com/xml/ajax_php.asp)。我个人认为提交表单更容易。
我怀疑你期待为你提供代码的答案,但我不确定你是否会找到能为你写出解决方案的人。 在线有很多关于如何创建HTML表单,提交数据并将表单中的详细信息保存到数据库中的代码示例。 祝你好运!
答案 1 :(得分:0)
在html中创建表单非常简单。只需将要提交的数据放在表单元素中即可。在此示例中,period
被放入input tag
隐藏属性中,我们会从您的查询中分配值。
<form method="POST" action="saveattendance.php">
<table>
<?php while($row = $db->fetch(PDO::FETCH_ASSOC)): ?>
<input type="hidden" name="period" value="<?php echo $row['Period'] ?>">
<tr>
<td><?php echo $row['student_name']; ?></td>
<td><?php echo $row['Passport_no'] ?></td>
<td><?php echo $row['Teacher'] ?></td>
<td><?php echo $row['Class'] ?></td>
<td><?php echo $row['Period'] ?></td>
<td>Present<input required type="radio" name="attendance[<?php echo $row['stud_id'] ?>]" value="Present" checked>
Absent<input required type="radio" name="attendance[<?php echo $row['stud_id']; ?>]" value="Absent">
</td>
</tr>
<?php endwhile; ?>
<tr>
<td colspan="6"><input type="submit" name="attendanceData" value="Save"></td>
</tr>
</table>
</form>
为了将表单保存到数据库,我们需要一个数据库连接,这里我使用了PDO mysql。
saveattendance.php
<?php
require_once 'dbconnect.php';//contains PDO connection script
if(isset($_POST['attendanceData'])){
$today = date('Y-m-d');
$period = $_POST['period'];
foreach($_POST['attendance'] as $key =>$val){
$studentid = $key;
$status = $val;
if(!empty($studentid)){
try{
$dbh->beginTransaction();
$stmt = $dbh->prepare("INSERT INTO `attendance` (`stud_id`,`Period`, `Status`,`Date`)VALUES(?,?,?,?)");
$stmt->execute(array($studentid, $period, $status, $today));
$update = $stmt->rowCount();
$dbh->commit();
}catch(PDOException $e){
$dbh->rollBack();
$error = $e->getMessage();//Print the error
exit;
}
}else{
//Student ID not there
}
}
}else{
//Form not submitted, display other useful info
}
?>