我有一个表,需要更新特定的行。用户勾选(使用复选框)要更新的值,然后将其作为数组发送(两个值)然后需要更改此值数据库。问题是它用相同的值更新两个值。我需要两个值根据来自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
}
}
答案 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注入。