2012-02-26 72 views
0

嗨我有senario,我需要更新MySQL表中有學生ID和學生標記。現在學生證在這裏是獨一無二的。我如何只使用一種表格來更新所有的學生分數。如何更新表格輸入學生的標記foreach學生標識每個標記在php mysql

$result= mysql_query("SELECT fname,usn FROM student where branch='$branch' and section='$section' and semester='$semester'") or die(mysql_error()); 
    echo "<form action=\"marks.php\" method=\"POST\">"; 
    echo "<table border='6' width='500' cellspacing='10' cellpadding='10' style='font-size:14px'>"; 
    echo "<caption>"; 
    echo "<b style='font-size:18px'>Internal</b> "; 
    echo "<b style='font-size:18px'>"; 
    echo $internal; 
    echo "</b>"; 
    echo " <b style='font-size:18px'>marks of</b> "; 
    echo "<b style='font-size:18px'>"; 
    echo $subject; 
     echo "</b>"; 
    echo "</caption>"; 
    echo "<tr><th>USN</th><th>FNAME</th><th>MARKS</th></tr>"; 

    // keeps getting the next row until there are no more to get 
    while($row = mysql_fetch_array($result)) { 
    echo "<tr><td>"; 
    echo $row['usn']; 
    echo "</td><td>"; 
    echo $row['fname']; 
    echo "</td><td>"; 
    echo "<input name=\"internal\" type=\"text\" value=\"\" >"; 
    echo "</td></tr>"; 
    echo "</table>"; 

    echo "<input name=\"update\" id=\"update\"type=\"submit\" value=\"submit \"align=\"middle\" >"; 
+1

這傷害了我的眼睛。將所有逃脫的雙引號改爲未轉義的單引號。這看起來像一團糟。 'echo'

「' – 2012-02-26 18:31:46

+0

如果我理解得當,比在所有行前面創建一個複選框並將它們的值設置爲student id,然後更新所有選中的行.. – 2012-02-26 18:33:25

+0

謝謝@Michael,我會這樣做,一旦邏輯被破解.. – azzaxp 2012-02-26 18:51:37

回答

1

每次打印出輸入字段爲學生標記,可以打印用於唯一地標識它的輸入字段名稱屬性 - 使用整數計數器,例如,從0到N-1,其中N是學生人數。您也可以通過一個隱藏的輸入字段與學生總人數。接收數據的PHP代碼然後使用隱藏的輸入字段來循環表單數據中的輸入字段。

例如,如果輸入字段最終被命名爲FIELD0 ... FIELD20,那麼隱藏的輸入字段的值爲21,所以PHP代碼簡單地這樣說:

$marks = array(); 
for ($i = 0; $i < $NUMOFMARKS; $i++) { 
    $marks[] = $POST['FIELD' . $i]; 
} 

然後建立您的SQL查詢來自一系列標記。

+0

感謝所有,我在這裏得到了一個很好的教程http://youtu.be/ImirOX73atc在php中更新多個記錄MySQL – azzaxp 2012-02-26 19:13:24