[英]Multiple update queries using loop in PHP & MySQL
我有一個表格,其中存儲了課程中所注冊學生的列表以及他們各自的成績。 它具有STUD_ID和STUD_GRADE作為列,並且STUD_GRADE的默認值為NA。
我想做的是顯示表格中的所有學生,以及旁邊顯示其成績的文本框,並且當按下“提交”按鈕時,所有行都將被更新。
我通過使用以下代碼顯示它們:
$query = "SELECT stud_id FROM tblgrade";
$result = mysql_query($query,$db) or die (mysql_error($db));
while($row = mysql_fetch_array($result))
{
extract($row);
echo "<tr><td><input type='hidden' value='$stud_id' name='id'/> stud_id </td>
<td><input type='text' size='10' name='grade'></td>
<tr>";
}
?>
我正在嘗試通過在查詢本身或PHP函數中使用循環來更新NA等級。 我已經嘗試了很多事情,但是在制作正確的循環時確實遇到了困難。 它總是給出只更新最后一行的結果。
這是我嘗試的第一件事也是最后一件事:
$query = "SELECT stud_id FROM tblgrade";
$result = mysql_query($query,$db) or die (mysql_error($db));
while($row = mysql_fetch_array($result))
{
$query1 = "UPDATE tblgrade SET stud_grade = '$_POST[grade]' WHERE stud_id = '$_POST[id]'";
mysql_query($query1,$db) or die (mysql_error($db));
}
echo "Grades have been updated!";
我選擇不發布嘗試過的循環,因為它們確實很混亂,我希望可以完成上面發布的循環。
建議,有人嗎? 提前致謝。 :D
PS:真的不擅長循環.. :(
我會這樣做:
UPDATE tblgrade
SET stud_grade = CASE
WHEN stud_id_1_value THEN 'stud_grade_1_value'
WHEN stud_id_2_value THEN 'stud_grade_2_value'
WHEN stud_id_3_value THEN 'stud_grade_3_value'
...
END
WHERE stud_id IN (stud_id_1_value,stud_id_2_value,stud_id_3_value,...);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.