php While循环更新每一行,而不是一行

oyjwcjzk  于 2022-10-30  发布在  PHP
关注(0)|答案(1)|浏览(169)

我知道MySQL已经过时了,但是我正在处理一个非常旧的代码。一旦它被修复,我会把它切换到mysqli。
我有很多用户,当我单击该特定用户的“编辑”按钮时,它会将我带到另一个页面,在该页面上,它会显示分配给该用户的课程/主题。如果他们已完成该主题,则会显示完成,如果没有,则会显示日期字段和按钮,以将其更新为完成。当我喜欢在按钮上按钮它为一个主题它将更新它完成到所有其他主题为该用户
我尝试将learnID按钮的值更改为CoureID,但不起作用。从循环中删除if,但仍然不成功

while ($row = mysql_fetch_array($result) ) {
    $firstName = $row["a01FirstName"];
    $lastName = $row["a01LastName"];

    if (isset($_POST['scomp']) && intval($_POST['scomp'])) {

stmt
    }
}
bvjxkvbb

bvjxkvbb1#

您不应该在显示表单的同一个循环中执行UPDATE。循环的每次迭代都更新循环的当前行。
将更新代码从循环中取出,只执行一次。

IF (!empty($_POST['scomp'])) {
    $CourseId = intval($_POST['scomp']);
    $pt_date = mysql_real_escape_string($_POST["pt_date"]);
    $progress = 47;
    $str1Update = "UPDATE tbl04usercourses SET a04WhmisProgress=$progress,a04note='completed manually',a04Completion=1,a04CompletionDate='$pt_date' WHERE a04CourseId=$CourseId AND a04UserId=$learnerID AND a04Status=1";
    $resultUpdate1 = mysql_query($str1Update,$db) or die('Error:'.mysql_error());
}

相关问题