上節(jié)課完成了一覽查詢頁面和新建信息頁面。
這節(jié)課繼續(xù)完成編輯信息頁面和刪除數(shù)據(jù)功能。
編寫一個編輯學生分數(shù)信息的頁面
一般一個信息管理功能是從創(chuàng)建數(shù)據(jù)開始,然后可以一覽查詢,還有必須的功能包括修改這些數(shù)據(jù)以及刪除這些數(shù)據(jù)。
這樣4個功能就構(gòu)成了一個完整的信息管理功能。
接下來編寫一個編輯學生分數(shù)信息的頁面。
新建2個文件studentedit.php和studentedit_do.php??梢詫tudentcreate.php復(fù)制粘貼后改名,然后修改某些地方。
studentedit.php修改如下:

studentedit_do.php修改如下:
注意此頁面和創(chuàng)建功能頁面的不同,就是學生ID是需要前一個頁面?zhèn)鬟f過來的參數(shù),否則就不知道應(yīng)該編輯哪一個學生記錄了。
將此文件部署到本地Web服務(wù)器的目錄下,然后新開一個瀏覽器窗口訪問此url,注意需要帶上一個學生ID的參數(shù)信息:
可以看到,程序根據(jù)傳遞的ID去數(shù)據(jù)文件 中讀取出對應(yīng)的其它信息,并默認顯示在可編輯的輸入控件中了。
注意第一個ID是不可以編輯的。
然后修改這些信息:
然后點擊保存按鈕:

可以看到,返回信息說明數(shù)據(jù)修改成功,查看服務(wù)器后臺的數(shù)據(jù)文件:

可以看到數(shù)據(jù)已經(jīng)更新成功。
然后回到一覽查詢頁面,點擊查詢按鈕:

可以看到,剛才更新的數(shù)據(jù)顯示在一覽當中了。
將編輯網(wǎng)頁鏈接到一覽頁面當中
由于編輯功能是針對一個具體的學生記錄,因此需要將此鏈接放置在一覽當中。
將每一行學生的姓名修改為一個鏈接,鏈接的url就是對應(yīng)的編輯網(wǎng)頁的url,傳遞的參數(shù)就是學生ID。
studentlist.php修改如下:
刷新一覽頁面,點擊查詢:

可以看到每一個姓名都是一個鏈接,點擊此鏈接,彈出了一個新的網(wǎng)頁窗口,進入編輯頁面:
點擊另外一個學生的姓名,進入對應(yīng)的學生信息編輯:

增加刪除功能
還差最后一個刪除功能,就可以完成一個完整的數(shù)據(jù)管理功能了。
修改編輯頁面,在保存按鈕旁邊增加一個刪除按鈕,然后根據(jù)fromtype區(qū)分來處理相應(yīng)的刪除邏輯。
刪除邏輯就是遍歷數(shù)據(jù)文件,根據(jù)ID找到對應(yīng)的數(shù)據(jù)行,然后將此行數(shù)據(jù)從文本文件當中刪除。
studentedit_do.php修改如下:

因為刪除功能需要慎重一些,因此在點擊此按鈕的時候,需要增加一個確認的過程,使用JavaScript實現(xiàn):
studentedit.php修改如下;

刷新一覽頁面,點擊某個學生的姓名,進入編輯頁面:
點擊刪除按鈕:

彈出確認窗口,點擊“確定”:
可以看到彈出了提示信息“刪除數(shù)據(jù)成功”,點擊確定按鈕后此窗口關(guān)閉。
查看服務(wù)器后臺的數(shù)據(jù)文件:

可以看到刪除的數(shù)據(jù)已經(jīng)不存在了。
然后回到一覽頁面,點擊查詢:

可以看到剛才刪除的數(shù)據(jù)已經(jīng)看不到了。
重新開始完整測試
所有功能都完成之后,可以將測試數(shù)據(jù)全部刪除,重新開始完整的測試。
進入服務(wù)器后臺,使用文本編輯器打開studentdatas.txt文件,刪除所有的數(shù)據(jù):
打開瀏覽器,按照一下的次序進行測試:
1.進入一覽頁面,應(yīng)該查詢不到記錄
2.輸入不同的條件,應(yīng)該都查詢不到記錄
3.進入新建頁面,輸入一個記錄,關(guān)閉新建頁面
4.進入一覽頁面,針對每一個單獨的條件,測試查詢到0個記錄和1個記錄的情況
5.點擊姓名進入編輯頁面,修改數(shù)據(jù),保存后關(guān)閉編輯頁面
6.進入一覽頁面,查詢數(shù)據(jù)應(yīng)該有變化
7.點擊姓名進入編輯頁面,刪除數(shù)據(jù)后關(guān)閉頁面
8.進入一覽頁面,應(yīng)該查詢不到記錄
9.通過新建頁面,創(chuàng)建不同的記錄多條
10.進入一覽頁面,測試不同條件的組合查詢出相應(yīng)的記錄
更方便的方法在哪里
前面完成了一個完整的數(shù)據(jù)信息維護的功能,使用的方式是讀寫文本文件的方式。
使用這種方式有很大的局限性,例如:
1.如果需要操作很多個數(shù)據(jù)文件,很麻煩,而且很多操作都是類似的重復(fù),僅僅是文件名和數(shù)據(jù)字段不一樣。
2.如果有多個數(shù)據(jù)文件有關(guān)聯(lián)關(guān)系,需要同時操作,無法保證數(shù)據(jù)的完整性和一致性。
3.如果文件系統(tǒng)突然出錯,沒有數(shù)據(jù)容錯和糾正機制。
4.如果網(wǎng)頁是多人同時訪問,多個進程同時操作文件,會產(chǎn)生文件鎖住的問題。
當然,還有其它更多的問題,這里就不一一列出。
那么,針對這樣非常共通性的問題,有沒有更好的解決方案呢?
在IT行業(yè)可以使用數(shù)據(jù)庫來解決以上的需求。
數(shù)據(jù)庫就是對數(shù)據(jù)進行結(jié)構(gòu)化存儲和管理的倉庫。
主要的目的就是通過統(tǒng)一的接口方式來存儲和管理數(shù)據(jù)。
倉庫提供了數(shù)據(jù)的創(chuàng)建,讀取,編輯,刪除等通用型功能。
可以使用SQL結(jié)構(gòu)化查詢語言對數(shù)據(jù)庫進行訪問。
后面幾節(jié)課將對數(shù)據(jù)庫和SQL進行詳細說明,并將學生信息數(shù)據(jù)修改為使用數(shù)據(jù)庫來存儲管理。