13-4 教師成績管理系統
(A) 系統功能: mExam 系統需要一套成績登錄系統,教師選擇課程之後,可在網頁上登錄平時、期中考、期末考或學期成績,期望查詢網頁如下:
執行網頁的結果如下:
更新網頁的結果如下:
(B) SQL 系統分析 圖 13-1 為成績登錄的資料關係圖,吾人需由 teachers、all_course 與 classes 表查出 teacher_ID、course_ID 與 class_ID,再查出 open_course_ID,再由 open_course 查詢出相關資料。
圖 13_1 成績管理的資料關係圖 (C) 網頁製作技巧 依照上述 SQL 系統分析,吾人規劃網頁如下:
我們需要 3 個網頁來完成,如下: (1) 查詢網頁(mExam-form.php):開啟 simple_teachers、classes與 all_course 等 3 個資料表,提供選單方式,讓老師選擇教師(teacher_ID)、開課課程(course_ID) 與開課班級(class_ID),並傳遞這 3 個訊息給執行網頁。 (2) 執行網頁(mExam-action-1.php):利用收到的 teacher_ID、course_ID 與 class_ID 由 open_course 資料表內查詢此課程的 open_course_ID,如果沒有的話,則顯示沒有此課程。有開此課程,則由 select_course 資料表查詢出有哪些學生修讀該課程,並建立選單讓教師修改或登錄成績。教師登錄完畢後將所有資料傳送給更新網頁。 (3) 更新網頁(mExam-action-2.php):將所有收到的訊息寫入 select_course 資料表內,再輸出其結果。 (D) 查詢網頁的程式範例:mExam-form.php
(E) 執行網頁的程式範例:mExam-action-1.php 此網頁功能是由接收到的 3 個訊息,查出所開課程的代碼,再由 select_course 資料表中查詢出有哪些同學修課。出現一個問題,我們無法預定到底有多少位學生修課,修改完後建立訊息需傳遞到下一個更新網頁上。圖 13_2 是修改與傳遞訊息的畫面,基本上,每一筆記錄6 個欄位數是不會變更的,可以編號 0 ~5。但資料的筆數是會變更的,我們用一個 $M 變數來記錄多少比數,對每一筆資料的某一欄位編碼是 value_.$M._$j,其中 $M 表示第幾筆記錄,$j 是第幾個欄位(0 ~5)。另外,student_ID($j = 0)與 open_course_ID($j=1) 內容是不允許變更的,我們將它們設定成隱藏式(type=’hidden’)。每一個欄位傳送訊息名稱皆設定成 name = ‘$value’,其中 $value = value_.$M_$j。最後傳遞 $M 給更新網頁,讓它知道有多少筆資料。
圖 13_2 傳送修改訊息的編碼
(F) 更新網頁的程式範例:mExam-action-2.php 首先由執行網頁處收到資料的筆數($number)後,就知道應該接收到多少訊息,訊息是 value_.$M._$j,$M = 0, 1, …, $number、$j = 0, 1, …, 5。將這些資料填入 data[$M][$j] 陣列內。再依序填入 select_course 資料表內,但 where 條件是 student_ID = $student_ID 與 open_course_ID = $open_course_ID
|
翻轉工作室:粘添壽
資料庫程式設計:
翻轉電子書系列:
|