我知道 MySQL 已貶值,但我正在處理一個非常舊的代碼。一旦它修復,我會將它切換到 mysqli。
我有多個用戶,當我單擊該特定用戶的編輯按鈕時,它將帶我到另一個頁面,它將向我顯示分配給我的課程/主題用戶。如果他們完成了該主題,它將顯示完成,如果沒有,將有日期欄位和按鈕來更新它以完成。當我喜歡在按鈕上為一個主題按下按鈕時,它將更新它以完成該用戶的所有其他主題。
我試圖將按鈕的值更改為 learnID 為 CoureID,但它不起作用。從回圈中洗掉 if 但仍然沒有運氣
while ($row = mysql_fetch_array($result) ) {
$firstName = $row["a01FirstName"];
$lastName = $row["a01LastName"];
if ($row["a04Status"] == 0) {
$iactive = "InActive";
}else{
$iactive = "Active";
};
if ($row["a04Completion"] == 0) {
$CourseId = $row["a04CourseId"];
$isCompletion = "Not Completed</td>
<td><input class='form-control' type='date' value=<?php echo date('Y-m-d') id='pt_date' name='pt_date'></td>
<td><button type='submit' name='scomp' value='**{$CourseId}**'>Set Completion</button>";
$progress = 140;
}else{
$isCompletion = "Completed";
};
$courses .= '<tr><td align="right" style="padding: 2px 20px 2px 10px;">'.$row["a03CourseName"].': </td>
<td>'.$iactive.'</td>';
$courses .= '<td>'.$isCompletion.'</td>
</tr>';
if (isset($_POST['scomp']) && intval($_POST['scomp'])) {
$user_id = (int) $_POST['scomp'];
$pt_date = $_POST["pt_date"];
$CourseId = $row["a04CourseId"];
$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());
}
}
uj5u.com熱心網友回復:
您不應該UPDATE在顯示表單的同一個回圈中執行此操作。您沒有更新與$_POST['scomp'];相關聯的課程。回圈的每次迭代都在更新回圈的當前行。
將更新代碼從回圈中取出,只需執行一次。
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());
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/522265.html
標籤:phpmysql
