資料庫程式設計 – PHP+MySQL 第 十一章 表格異動處理程式  上一頁     

 

11-8 自我挑戰 – DML

內容:

  • 11-8-1 自我挑戰:新增教師

  • 11-8-2 自我挑戰:新增班級

  • 11-8-3 自我挑戰:修改班級資料

  • 11-8-4 自我挑戰:修改教師資料

11-8-1 自我挑戰:新增教師

(A) 系統功能:PM11_1

請在 course_db 資料庫上建立一只可供登錄教師資料的網頁,期望如下:

n   『表單網頁』:可供下拉式選擇系所名稱(系所代碼),直接輸入教師代碼(不可重複)、姓名、性別(下拉選單)、職稱(下拉選單)、電話、電子郵件與地址。

n   『執行網頁』:登錄教師資料並顯示該教師詳細資料。

(B) SQL 系統分析

只須對 teachers 表做 Insert into 的動作,但教師是屬於哪一系所的 dep_ID 是須由 department 查詢所的,下圖是 teachers department 兩張資料表之間的關聯,教師的 dep_ID 也是由查詢網頁,由使用者選擇系別名稱產生。另外,吾人希望性別 (sex) 提供男與女的選單,職位(title)也提供教師、系主任、助教的選單。

11-8-2 自我挑戰:新增班級

(A) 系統功能:PM11_2

請在 course_db 資料庫上建立一只可供登錄班級的網頁,期望功能如下:

n   『表單網頁』:可供輸入:學制(下拉式選擇)、系所名稱(系所代碼、由 department 表查詢,下拉式選擇)、班級編排(甲、乙班,下拉式選擇)、班級名稱(直接輸入)、入學年度(103~109,下拉式選擇),再傳送給執行網頁。

n   『執行網頁』:登錄班級資料並顯示該班詳細資料。

(B) SQL 系統分析

班級資料是登錄於 classes 資料表內,須對它做 Insert into 的動作。下圖是 classes department 兩資料表之間的關聯,它們之間是利用 dep_ID 來建立關係,也表示每一班級是屬於哪一系。其中比較麻煩的是 class_ID 的編碼,它總共有 6 碼,其結構是學制(1)+入學年度 (2)+系別(2 ) + 班級(1 ),學制是日間部四技(4)、進修部四技(9),入學年度是 102(02)103(03)104(04)、、依此類推,班級是甲班(1)、乙班(2)、丙班(3)、、依此類推。

我們預定由查詢網頁開啟 department 表,並提供下拉式選擇系所名稱,再傳遞 dep_ID 給執行網頁,另外也提供輸入班級名稱(class_name)、入學年度(year)、學制(sys_ID)、班級(class) 介面,執行網頁再將它連結組合成班級代碼(class_ID),再一併插入 classes 資料表。

11-8-3 自我挑戰:修改班級資料

(A) 網頁功能:PM11_3

請在 course_db 資料庫上建立一只可供登班級名稱的網頁,期望功能如下:

n   『表單網頁』:可供下拉式選擇欲修改的班級名稱( classes 表查詢)、並將班級編碼(class_ID) 傳送給執行網頁。

n   『執行網頁』:由 classes 表讀出該班的班級名稱,以供修改,修改後再傳送給更新網頁。

n   『更新網頁』:更新該班級名稱,並顯示結果。

(B) SQL 系統分析

classes 表內除了 class_name 欄位可以任意變更外,其餘欄位都不可隨意變更,因此關聯圖如下:

11-8-4 自我挑戰:修改教師資料

(A) 網頁功能:PM11-4

請在 course_db 資料庫上建立一只可供修改教師資料的工具,期望功能如下:

n   『表單網頁』:可供下拉式選擇欲修改的教師姓名( teachers 表查詢)、並將教師編碼(teacher_ID) 傳送給執行網頁。

n   『執行網頁』:由 teaches 表讀出該教師的資料以供修改(系別代碼不得更改),修改後再傳送給更新網頁。

n   『更新網頁』:更新該教師資料,並顯示結果。

(B) SQL 系統分析

這題只針對 teachers 表做更新動作即可 (dep_ID 欄位不可更新),程序如下圖所示:

翻轉工作室:粘添壽

 

course_db 關聯圖

資料庫程式設計:

 

 

 

翻轉電子書系列: