我想更改教师名单中每个学生的成绩。 我不知道这里有什么问题。 请你帮帮我。 这是sub-doc.php的代码
这是savesub_doc.php
<?php
if(isset($_POST["submit"])) {
foreach($_POST['sh_grade'] as $gr){
$i =$_POST['sh_id'];
$sqiil="UPDATE grade SET sh_grade[]='$gr' WHERE sh_id='$i' ";
if(mysqli_query($conn,$sqiil)){
}
}}
?>
sub_doc.php
<input type="hidden" name="sh_id[]" value="<?php echo $row["sh_id"]; ?>" >
<input type="text" name="sh_grade[]" value='<?php echo $row['sh_grade'];?>">
<input type="submit" value="Submit" name="submit">
答案 0 :(得分:0)
<?php
if(isset($_POST["submit"])) {
foreach($_POST["sh_grade"] as $keys => $gr){
$i = $_POST["sh_id"][$keys];
$sqiil="UPDATE grade SET sh_grade = " . $_POST["sh_grade"][$keys] . "WHERE sh_id = " . $i;
if(mysqli_query($conn,$sqiil)){ }
}}
?>
试试这个并告诉我你是否有问题!!
答案 1 :(得分:0)
您应该使用参数化查询来阻止SQL注入。我怀疑表格列的名称中有[]
。
您还需要索引$_POST['sh_id']
以获取每个成绩的相应ID。
if (isset($_POST['submit'])) {
$stmt = mysqli_prepare($conn, "UPDATE grade SET sh_grade = ? WHERE sh_id = ?");
mysqli_stmt_bind_param($stmt, "si", $gr, $id);
foreach ($_POST['sh_grade'] as $i => $gr) {
$id = $_POST['sh_id'][$i];
mysqli_stmt_execute($stmt);
}
}