3.1.1功能
利用SQL語法過濾特定的家長留言意見,讓老師可以針對某位特定學生家長所發(fā)表的意見作出獨立的回答,同時,家長在發(fā)表個人意見時,若認為意見內容涉及敏感的話題或是意見內容涉及私人隱私,都可用“悄悄話”的方式發(fā)言,這些“悄悄話”將不會被顯示出來讓大家看到,當然,老師擁有管理的能力,只要以密碼登錄管理模式,就可以進行各個學生家長的單獨意見回復,而且還能看到家長們所留下的“悄悄話”。
3.1.2組成構造
共分成六大部分:
1.意見留言結果網頁guest.asp:用來顯示家長發(fā)言與老師回復內容,同時還具備一般模式與管理模式兩種顯示方法。
2.家長發(fā)言表單網頁addmsg.asp:讓學生家長填寫發(fā)言內容并選擇發(fā)言性質。
3.家長發(fā)言數(shù)據處理ASP程序add.asp:處理家長發(fā)表的意見數(shù)據,同時將這些意見數(shù)據記錄起來并將網頁顯示轉向至意見留言結果網頁。
4.老師回復表單網頁teachans.asp:讓老師針對某位特定學生家長所發(fā)表的意見作出獨立的回答。
5.老師回復數(shù)據處理ASP程序anssave.asp:處理老師回復的數(shù)據內容,同時將這些意見數(shù)據起來并將網頁顯示轉向至意見留言結果網頁。
6.數(shù)據表文件allmessage:用來儲存家長發(fā)言數(shù)據與老師回復數(shù)據的Access類型數(shù)據庫文件。
“數(shù)據表文件”負責存放家長發(fā)言數(shù)據與老師回復內容的數(shù)據記錄,為Access類型的庫文件,將它定名為:“message.mdb”。
下圖為家庭聯(lián)絡簿的組成與流程圖:
老師回復
家長留言
讀入 寫入
寫入
3.1.3數(shù)據庫結構設計
數(shù)據庫文件“teach.mdb”中的數(shù)據表“ allmessage”的欄目設置,如下圖:
字段名 字段類型
3.1.4界面設計與重點、難點代碼的設計
數(shù)據庫與留言顯示程序網頁
家長發(fā)言與老師回復的內容數(shù)據全部儲存在數(shù)據庫中,要在網頁中顯示目前的家長發(fā)言與老師回復數(shù)據,必須先進行數(shù)據庫的鏈接與打開,要鏈接數(shù)據庫我們必須使用ADO對象群的Connection對象;而要打開數(shù)據庫則必須使用ADO對象群的Recordset對象,程序:
set cn=server.createobject(“adodb.connection”)
cn.open “filedsn=c:\program files\common files\odbc\data sources\ms access database.dsn”
set rs=server.createobject(“adodb.recordset”)
sql=“select * from allmessage order by 留言時間 desc”
rs.open sql,cn,1,1
Recordset對象是負責瀏覽與操作從數(shù)據庫取出來的數(shù)據,Connection對象只負責與數(shù)據庫進行鏈接的動作,并不能使用數(shù)據庫內的數(shù)據,因此必須建立一個可以存取數(shù)據庫數(shù)據的Recordset對象,
使用RS.Open方法存取“teach.mdb”數(shù)據庫
RS.Open SQL,CN,1,1
使用open方法來打開數(shù)據表或執(zhí)行Select指令參數(shù)設置如下:
1.參數(shù)一(SOURCE):為欲打開的數(shù)據表或SQL指令。
2.參數(shù)二(ActionConnection):指定一個已打開的數(shù)據庫對象,將此參數(shù)設為鏈接我們已經建立好的Connection對象“CN”。
3.參數(shù)三( CursorType):指定Recordset的打開類型,1為可讀寫且可自由移動。
4.參數(shù)四(LockType):指定鎖定類型,1為只讀。
數(shù)據排序與SQL指令
1. Select 指令的篩選語句:
格式: Select…From
在SQL語言中:“Select”數(shù)據表“中選取某些”欄位“的數(shù)據。
2.如果要選取的數(shù)據表數(shù)據包含了一個以上的欄位,則我們可以利用“,”逗號來欄位名稱隔開。
3. 如果要選取的數(shù)據表數(shù)據包含了全部的欄位,則可以利用萬用字符“*”來代表全部的欄位。
可排序數(shù)據的Select指令
1. 當我們希望被選取出來的數(shù)據記錄數(shù)據能夠依據某個或某幾個欄位的內容來排序時,只要將這些排序依據的欄位擺放在“Order By”保留字之后,然后將這處排序的語句連接在“Select…From”后面就行了。
2. “Order By”默認的排序方式是“由小排到大”,但若是希望排序方式是“由大排到小”,則我們可在欄位名稱后再加上“Desc”保留字!將排序方式改為“由大排到小”。
在“顯示留言意見”網頁中的打開數(shù)據庫ASP程序中的語句:
SELECT*From allmessage order by 留言日期 Desc
功能為:從數(shù)據表“allmessage”中取出所有欄位的數(shù)據,并將取出的數(shù)據記錄內容依照“留言日期”欄位使用的“由大排到小”排序方式進行排序。
留言顯示網頁的管理模式
“顯示留言意見”的網頁就必須具備顯示模式選擇的功能,當顯示模式在一般情況時要能顯示家長們的一般性發(fā)言,同時還得將“悄悄話”的發(fā)言隱藏起來。當老師以密碼登錄成為管理模式時,則必須將一般性發(fā)言與悄悄話發(fā)言的數(shù)據全部顯示出來,同時還得讓老師們可以針對某位特定學生家長所發(fā)表的意見作出獨立的回答。
這兩個情況是通過密碼登錄管理模式的ASP程序實現(xiàn)的:
form method=“post”
%if session(“checkedit”)=“yes” then%
input type=“hidden” value=“yes” name=“goexit”
input type=“submit” value=“離開管理模式”
%else%
密碼: input type=“password” name=“password” size=“4” maxlength=“4” nbsp nbsp input type=“submit” value=“教師管理”
%end if%
/form
在這段網頁語句中,利用Session對象來記錄目前的工作模式。當我們第一次進入“顯示留言意見”網頁的時候,我們所見的網頁畫面一定是一般!因為Session尚未被建立,因此它的“變量”值一定不會是“yes”,所以網頁中會出現(xiàn)一個輸入密碼進入“教師管理”模式的欄位,只有當我們輸入密碼按下“教師管理”的按鈕組織上發(fā)ASP程序中的進入管理模式語句后,Session對象才會被建立,同時,“checkedit”Session對象變量值被設置為“yes”,所以我們就進入了能將一般性發(fā)言與悄悄話發(fā)言的數(shù)據全部顯示出來,同時還讓教師們可以針對某位特定學生家長所發(fā)表的意見作出獨立回答的管理模式頁面。