制作有管理功能的ASP留言板
發(fā)布時間:2008-08-04 閱讀數(shù): 次 來源:網(wǎng)樂原科技
今天我們來寫一個有管理功能的留言板程序。所謂的管理功能,其實就是每條留言前有一個選擇框,點中要刪除的留言,或者點“刪除所有留言”,就完成了批量刪除。通過這一實例,我們可以初步了解ASP中對數(shù)據(jù)庫的基本操作。
一、建立數(shù)據(jù)庫(ACCESS2000中文版)
myid 文本型 20字節(jié) 這是發(fā)言的唯一標志
myname 文本型 10字節(jié) 這是保存留言人姓名的
nowtime 日期/時間型 這里記錄了留言時間
mytitle 文本型 30字節(jié) 這是留言的題目
mybody 備注 留言內(nèi)容
其中的myid字段是關(guān)鍵,它是刪除的唯一標志。
二、管理程序
manage.asp代碼
'先定義變量
dim listrs,conn,cmd
'可根據(jù)實際留言數(shù)量修改i的循環(huán)次數(shù)
for i=1 to 100
if request("delit"&i)<>empty then
'上面這條語句為關(guān)鍵部分,檢查第i條留言是否被選中,若被選中,則執(zhí)行下面的刪除操作
Set conn = Server.CreateObject("ADODB.Connection")
sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source="&Server.MapPath("guestbook.mdb")&";"
'mappath函數(shù)要用一個參數(shù)guestbook.mdb,表示要連接的數(shù)據(jù)庫,注意路徑問題
conn.Open sConnection
'再連接數(shù)據(jù)表
set cmd=Server.Createobject("ADODB.Command")
set cmd.activeconnection=conn
cmd.commandtext="delete from guest where
myid='"&request("delit"&i)&"'"
'上面的guest是數(shù)據(jù)表的表名,myid是字段名
cmd.execute
set conn=Nothing
set cmd=Nothing
'執(zhí)行SQL指令及釋放對象
end if
next
'輸出表單,注意action屬性指向manage.asp
response.write ""
'連接數(shù)據(jù)庫
set conn=Server.CreateObject("ADODB.Connection")
set listrs=server.createobject("ADODB.Recordset")
sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source="&Server.MapPath("guestbook.mdb")&";"
conn.Open sConnection
listrs.open "select * from guest",conn,2,2
'上面打開了數(shù)據(jù)庫的guest表
i=1
'變量i開始記數(shù)
while not listrs.eof
response.write "<input type='checkbox' name='delit"&i&"'
value='"&listrs("myid")&"'>來自:"&listrs("myname")&"----"&listrs("mytitle")&"時間:"&listrs("nowtime")&"<br>"&listrs("mybody")&"<p>"
i=i+1
'上面兩步是關(guān)鍵處,輸出每條留言的同時,輸出一個checkbox復(fù)選框,此框功能是選中與不選中將返回不同值
listrs.movenext
wend
set listrs=Nothing
'輸出提交按鈕和表單結(jié)束標志
response.write "<input type='submit' value='刪除選中/刷新'></form>"
三、代碼分析
代碼不太好理解,且聽我說來:
1.程序首次執(zhí)行時,if request("delit"&i)<>empty
then總是返回假值,因為復(fù)選框未被選中,接著輸出所有的留言。
2.在選中了要刪除的留言后,按下“刪除按鈕”,重新執(zhí)行。
3.刪除全部選中的留言后,再輸出留言板。