繁体   English   中英

在SQL和PHP中更新多行

[英]Updating multiple rows in sql and php

我有一个需要更新特定行的表。用户勾选(使用复选框)要更新的值,然后将其作为数组发送(两个值),然后需要在数据库中更改此值。问题是它用相同的值更新两个值。 我需要两个值都不同,这取决于帖子数组中的内容

我不确定是否应该使用联接? 还是for循环?

如何更新来自复选框数组的多个值? 我想要的是基于POST数组值更新两个值。正确的值来自于我使用var_dump的post数组

foreach($_POST['course_id'] as $course_id) {

    $update_query = "UPDATE course_student SET course_id='$course_id' WHERE student_id='$student_id' ORDER BY course_id";
    $update_course_result = mysqli_query($connection,$update_query);

    if($update_course_result && mysqli_affected_rows($connection)>0) {
        echo "Success";
        // more code here
    }

}

诀窍是先删除该学生的所有条目,然后再重新插入新检查的值:

DELETE FROM course_student WHERE student_id='$student_id'

然后在您的foreach循环中执行以下查询:

INSERT INTO course_student SET course_id='$course_id', student_id='$student_id'

此后看起来像“更新”,因为您删除了所有内容(还包括未选中的内容)。 并插入所有新的已检查条目。

并且请注意上面注释中提到的SQL注入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM