在sql和php中更新多行

时间:2014-10-01 10:56:22

标签: php mysql sql

我有一个表,需要更新特定的行。用户勾选(使用复选框)要更新的值,然后将其作为数组发送(两个值)然后需要更改此值数据库。问题是它用相同的值更新两个值。我需要两个值根据来自post数组的内容而有所不同

我不确定我是否应该使用加入?还是for循环?

如何更新来自复选框数组的多个值? 。我想要的是它根据POST数组值更新两个值。正确的值来自post数组,因为我使用了var_dump

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
    }

}

1 个答案:

答案 0 :(得分:0)

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

DELETE FROM course_student WHERE student_id='$student_id'

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

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

之后看起来像“更新”,因为你删除了所有内容(也包括未检查的内容)。并插入所有新检查的条目。

请注意上面评论中提到的SQL注入。