教大家如何利用ASP打造網(wǎng)站論壇DIY(1)(3)_ASP教程
推薦:ASP實現(xiàn)帶進度條的測試網(wǎng)速的代碼程序ASP實現(xiàn)帶進度條的測試網(wǎng)速。 把下列代碼存為.ASP的文件,放在你的服務器上就可以直接運行了。 以下為引用的內(nèi)容: <% Response.E
板主:文本類型,看板版主的ID。
主題數(shù):數(shù)字類型,看板中包含的主題數(shù)。
(4)主題表(用來存放有關主題的訊息):
ID:自動編號,并為其設置索引。
標題:文本類型,表示主題名。
看板:數(shù)字類型,來自看板列表,表示主題所屬的看板。
文章數(shù):數(shù)字類型,主題中包含的文章數(shù)。
所有的表是設計完了,但是數(shù)據(jù)庫的設計并沒有完,所以我們還需要建立表間關系,這樣就能夠讓數(shù)據(jù)庫執(zhí)行一些相關性檢查,避免資料出錯。建立表間關系的另外的一個好處,就是通過它能夠很容易的建立出復雜的JOIN查詢。
通常我們在ASP中操作數(shù)據(jù)庫的時候,都是使用的執(zhí)行時生成的查詢,然后由傳遞給數(shù)據(jù)庫解釋執(zhí)行。而在這兒我們要用的是存貯查詢。與執(zhí)行時查詢比較而言,預存程序具有更多的優(yōu)點。
它保存在數(shù)據(jù)庫中,獨立于ASP程序代碼,使得他更容易建立和修改,并且查詢的效率更高,速度更快,可以調(diào)試好了以后再放在ASP頁面中使用,能避免很多問題。而且使用存貯查詢的ASP程序代碼更加容易閱讀和修改。可能大家都對在ASP中使用SQL查詢感到很煩,特別是那些逗號啊,分號啊什么的,一不小心就會出錯。使用存貯查詢后,就可以不用顧慮這些問題了。當然,預存程序再使用上也有一些要注意的地方,在后面我會詳細的講解它的使用方法。在ACCESS中建立預存程序是一件很容易的事,這兒我就不再多說了。在這兒我只給出各個查詢的SQL語句程序代碼。
我把所有要使用到的查詢都作為預存程序保存在了數(shù)據(jù)庫中,主要的有以下的一些:
(1)按ID查詢文章:
| 以下為引用的內(nèi)容: SELECT 主題表.標題 AS 主題名, 看板列表.名稱 AS 看板名, 內(nèi)容表.* FROM 主題表 INNER JOIN (內(nèi)容表 INNER JOIN 看板列表 ON 內(nèi)容表.看板ID = 看板列表.ID) ON 主題表.ID = 內(nèi)容表.主題ID WHERE (((內(nèi)容表.ID)=[articleid])); |
(2)版主密碼查詢:
| 以下為引用的內(nèi)容: SELECT 看板列表.板主, 作者表.密碼 FROM 作者表 INNER JOIN 看板列表 ON 作者表.ID = 看板列表.板主 WHERE (((看板列表.ID)=[id]; |
(3)查詢作者:
| 以下為引用的內(nèi)容: SELECT 作者表.* FROM 作者表 WHERE (((作者表.ID)=[id])); |
(4)發(fā)表文章列表:
| 以下為引用的內(nèi)容: SELECT [內(nèi)容表].[ID], [內(nèi)容表].[標題], [內(nèi)容表].[作者ID] AS 作者, [內(nèi)容表].[日期], [內(nèi)容表].[推薦度], [內(nèi)容表].[點擊次數(shù)] AS 點擊數(shù)。 FROM 內(nèi)容表 WHERE ((([內(nèi)容表].[主題ID])=[TopicIndex]) And (([內(nèi)容表].[發(fā)表])=True)); |
未發(fā)表文章列表:
| 以下為引用的內(nèi)容: SELECT 內(nèi)容表.ID AS 文章id, 主題表.ID AS 主題id, 主題表.標題 AS 主題, 內(nèi)容表.標題 AS 標題, 內(nèi)容表.作者ID AS 作者, 內(nèi)容表.日期 AS 日期 FROM 主題表 INNER JOIN 內(nèi)容表 ON 主題表.ID = 內(nèi)容表.主題ID WHERE (((內(nèi)容表.發(fā)表)=False) AND ((內(nèi)容表.看板ID)=[boardid])); |
(5)主題列表:
| 以下為引用的內(nèi)容: SELECT 主題表.*, 看板列表.名稱 AS 看板名 FROM 看板列表 INNER JOIN 主題表 ON 看板列表.ID = 主題表.看板 WHERE (((主題表.看板)=[boardIndex])); |
還有一些查詢,因為大多類同,我就不一一列出了。
在上面的查詢語句中,可以看到一些由"["和"]"包圍起來的東西,那就是查詢參數(shù)了。需要在執(zhí)行時給出參數(shù)值,然后把參數(shù)值帶入到查詢語句中才能夠執(zhí)行。還有一點要注意的是:在建立那些INNER JOIN查詢時,是需要把表間關系添加到設計視圖中的,否則是不能夠自動生成INNER JOIN查詢語句的。
到這兒,數(shù)據(jù)庫的設計就算完了,以后的工作就是ASP的事了。
二、構建
1、構建主窗體
先要給出一個窗體,能夠讓網(wǎng)友輸入注冊訊息,這些是HTML的內(nèi)容,且放在一邊,我們來仔細看看具體實現(xiàn)注冊的ASP腳本。
(1)將資料中的單引號改成兩個單引號,并且在前后加上單引號
| 以下為引用的內(nèi)容: Function SqlStr( data ) SqlStr = "'" & Replace( data,"'", "''" ) & "'" End Function |
注:這是一個自定義的函數(shù),用來把用戶輸入中的單引號(')轉(zhuǎn)換成兩個單引號('')。在ASP中,用雙引號圍著的是字符串,因而上面的"'"代表的就是只有一個單引號的字符串。之所以要把一個單引號換成兩個單引號,這是因為在SQL語句中,用單引號圍起來是用來代表變量的。為了不至于混淆,就要把字符串中的單引號用兩個單引號來表示。而所有的用戶輸入都要作為變量嵌入到SQL語句中的,所以這個函數(shù)是必不可少的。
(2)存貯準備
| 以下為引用的內(nèi)容: id=Request("id") password=Request("password") nickname=Request("nickname") email=Request("email") sex=request("sex") |
注:把來自用戶輸入窗體中的內(nèi)容保存在變量中,這不是必須的,但寫了更容易讀寫。
| 以下為引用的內(nèi)容: if Request("name")=""then name=" " else name=request("name") if Request("phone")=""then phone=" " else phone=request("phone") |
分享:如何提高自己的編程水平有成功的喜悅,也有失敗的痛苦,但總不敢稱自己是高手,因為和我心目中真正的高手們比起來,還差的太遠。世界上并沒有成為高手的捷徑,但一些基本原則是可以遵循的。 1. 扎實的基礎。 數(shù)據(jù)
- 相關鏈接:
- 教程說明:
ASP教程-教大家如何利用ASP打造網(wǎng)站論壇DIY(1)(3)
。