gpt4 book ai didi

php - 使用单个提交按钮将每行的值插入数据库的 while 循环

转载 作者:搜寻专家 更新时间:2023-10-30 20:56:35 25 4
gpt4 key购买 nike

目前,我正在制作出勤表。在这个界面中,它由几行学生组成(从学生表中获取)。学生名单见表。第一栏是NO,第二栏是Birth No,第三栏是STudent Name,第四栏是Attendance。在出勤栏中,有三个单选按钮,分别是PT、AT和MC,它们的值分别是present、absent和mc。在表格的外面,有一个提交按钮。教师需要单击学生的出勤情况,pt、at 或 mc。教师需要点击所有学生。当老师点击提交按钮时,学生的出勤率将被插入数据库。当我执行下面的代码时,数据库中没有插入任何值。有人可以帮我弄清楚我哪里出错了吗?过去 2 周我一直在处理这段代码,但仍然没有得到预期的结果。谢谢。

$getdata = mysql_query("select * from student where 
class = '$class' order by name ") or die(mysql_query);

if (isset($_POST['submit'])){
$id = 1;
while($row = mysql_fetch_assoc($getdata)){
if(isset($_POST['a'.$id])) {
$status = $_POST['a'.$id];
if(!empty($status)){
if(($status == "present" || $status == "mc")){
$attend = 1;
}
else if($status == "absent"){
$attend = 0;
}
$query = "INSERT INTO attendance(birth_no, date, status, attend)
VALUES ('$birth_no','$date','$status','$attend')";
if($query_run = mysql_query($query)){
echo 'Insert attendance done';
}
else{
echo'Attendance not inserted.';
}
}
else{
echo 'Please enter all fields';
}
}
$id ++;
}
}
else {
?>
<form action="addattend.php" method = "POST">
<table>
<?php
$id = 1;
while($row = mysql_fetch_assoc($getdata)){
$birth_no= $row['birth_no'];
$name = $row['name'];
?>
<tr>
<td><center><?php echo $id ?></center></td>
<td><center><?php echo $date ?></center></td>
<td><center><?php echo $birth_no ?></center></td>
<td><center><?php echo $name ?></center></td>
<td>
<input type="radio" name="a<?php echo $id; ?>" value="present">PT
<input type="radio" name="a<?php echo $id; ?>" value="absent">AT
<input type="radio" name="a<?php echo $id; ?>" value="mc">MC
</td>
</tr>
<?php
$id ++;
} // end while
?>
</table>
<center><input type="submit" name="submit" value="Submit"></center>
</form> <!-- end the form here -->
<?php
} // end else
?>

这就是我所说的界面(下图)

enter image description here

每一行都有 3 个单选按钮。从数据库中检索学生列表。教师需要为所有学生选择出勤。使用单个提交按钮,所有出勤都将插入数据库,其中包含 birth_no、日期(教师之前选择的)以及在选择出勤后分配的 $attend。

最佳答案

I don't get it when you said use primary key instead of $id

让我解释一下:当您使用 while$id 循环你增加 $id对于每个 while环形。如果您的表缺少主键“1”或与此相关的任何一个怎么办?答:第一行可能与“1”的主键无关。让我用一些数据进一步说明:

示例表:

student_id | name
-----------+--------
1 | John
3 | Jane
4 | Bob

现在让我们使用 sudo 代码循环一段时间

$id = 1;
while(row exists){
print row['name']." has primary key of $id";
$id++;
}

这将打印出类似于:

John has primary key of 1
Jane has primary key of 2
Bob has primary key of 3

这是不正确的。

下面是我将如何做这样的事情,这段代码可能需要根据您的特定用途稍作调整:

<?php

$getdata = mysql_query("select * from student where
class = '$class' order by name ") or die(mysql_query);

if (isset($_POST['submit'])){
while($row = mysql_fetch_assoc($getdata)){
//set the id equal to the primary key
$id = $row["birth_no"];
$date = date("Y-m-d");
if(isset($_POST['a'.$id])) {
$status = $_POST['a'.$id];
if(!empty($status)){
if(($status == "present" || $status == "mc")){
$attend = 1;
}
else {
$attend = 0;
}
$query = "INSERT INTO attendance(birth_no, date, status, attend)
VALUES ('$id','$date','$status','$attend')";
if($query_run = mysql_query($query)){
echo 'Insert attendance done';
}
else{
echo'Attendance not inserted.';
}
}
else{
echo 'Please enter all fields';
}
}
}
}
else {
?>
<form action="addattend.php" method = "POST">
<table>
<?php
while($row = mysql_fetch_assoc($getdata)){
$birth_no = $row['birth_no'];
$name = $row['name'];
?>
<tr>
<td><center><?php echo date("F j, Y") ?></center></td>
<td><center><?php echo $birth_no ?></center></td>
<td><center><?php echo $name ?></center></td>
<td>
<input type="radio" name="a<?php echo $birth_no; ?>" value="present">PT
<input type="radio" name="a<?php echo $birth_no; ?>" value="absent">AT
<input type="radio" name="a<?php echo $birth_no; ?>" value="mc">MC
</td>
</tr>
<?php
} // end while
?>
</table>
<center><input type="submit" name="submit" value="Submit"></center>
</form> <!-- end the form here -->
<?php
} // end else
?>

关于php - 使用单个提交按钮将每行的值插入数据库的 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18741184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com