簡體   English   中英

使用PHP和MySQL中的循環進行多個更新查詢

[英]Multiple update queries using loop in PHP & MySQL

我有一個表格,其中存儲了課程中所注冊學生的列表以及他們各自的成績。 它具有STUD_IDSTUD_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM