站內(nèi)搜索的實(shí)現(xiàn)-Dreamweaver構(gòu)建BlogBLOG
文章出處:設(shè)計前沿網(wǎng)上收集 發(fā)布時間:2005-09-22 瀏覽次數(shù):58
經(jīng)??吹皆S多網(wǎng)站有一個站內(nèi)搜索功能,這個是如何實(shí)現(xiàn)呢?如果是ASP,那Dreamweaver很快就能實(shí)現(xiàn)?,F(xiàn)在是ASP.NET,得稍微手編一下。
11.1 SELECT高級搜索技巧
經(jīng)過上面章節(jié)的學(xué)習(xí),對SELECT多少會點(diǎn)了解。SELECT高級搜索技巧,其實(shí)也沒有什么神秘,主要與模式匹配運(yùn)算符的運(yùn)用有關(guān)。所以這里主要講解模式匹配運(yùn)算符的運(yùn)用。
模式匹配運(yùn)算符LIKE、NOT LIKE常用于模糊查找,它判斷列值是否與指定的字符串格式相匹配。LIKE用于查找匹配一定條件的記錄,NOT LIKE用于查找不匹配指定條件的記錄??捎糜谧址?、文本、日期等類型查詢。
1.百分號%:可匹配任意類型和長度的字符。
例如:SELECT 學(xué)習(xí)筆記 FROM 學(xué)習(xí)筆記表 WHERE 標(biāo)題 LIKE “網(wǎng)絡(luò)%”
這個查詢是要查詢學(xué)習(xí)筆記表中標(biāo)題以“網(wǎng)絡(luò)”開始的所有學(xué)習(xí)筆記,如:網(wǎng)絡(luò)數(shù)據(jù)庫ASP一點(diǎn)通過、網(wǎng)絡(luò)與手機(jī)通訊開發(fā)研究等。
例如:SELECT 學(xué)習(xí)筆記 FROM 學(xué)習(xí)筆記表 WHERE 標(biāo)題 LIKE “%ASP.NET%”
這個查詢是要查詢所有標(biāo)題包含了“ASP.NET”的學(xué)習(xí)筆記。
2.下劃線_:匹配單個任意字符,常用來限制表達(dá)式的字符長度。
例如:SELECT 學(xué)習(xí)筆記 FROM 學(xué)習(xí)筆記表 WHERE 標(biāo)題 LIKE ”V_開發(fā)精選 ”
這個查詢主要是查詢類似于“VB開發(fā)精選”、“VC開發(fā)精選”這樣標(biāo)題的學(xué)習(xí)筆記。
3.中括號[ ]:指定個字符、字符串或范圍,要求所匹配對象為它們的任一個。
11.2 站內(nèi)搜索功能的實(shí)現(xiàn)
介紹了SELECT高級搜索技巧后,將要介紹站內(nèi)搜索功能的實(shí)現(xiàn)。這里只采用了百分號%模式匹配運(yùn)算符。
(1)打開模板dkblog.dwt.aspx,插入表單,設(shè)ID=” gofrm”,動作為” ../dkgo.aspx”,方法為”POST”;插入文本框,設(shè)ID= “dkgotxt”;插入按鈕“搜索”,結(jié)果如圖11-1所示。
(2)保存模板dkblog.dwt.aspx更新所有網(wǎng)頁。
(3)新建一個空白ASP.NET VB動態(tài)頁,并保存為dkgo.aspx。添加數(shù)據(jù)集Ztre,其設(shè)置如圖11-2所示。
圖11-1 添加有關(guān)表單控件
圖11-2 添加數(shù)據(jù)集Ztre
(4)單擊“高級”按鈕,把SQL命令:
SELECT * FROM ZT ORDER BY ZITIME DESC
改為:
SELECT * FROM ZT WHERE ZTNAME LIKE ‘%"+Request.Form("dkgotxt")+"%‘ ORDER BY ZITIME DESC
結(jié)果如圖11-3所示。
圖11-3 對數(shù)據(jù)集Ztre進(jìn)行修改
(5)對dkgo.aspx頁面進(jìn)行有關(guān)設(shè)計,綁定有關(guān)動態(tài)文本到頁面中,設(shè)計重要區(qū)域,結(jié)果如圖11-4所示。
圖11-3 對dkgo.aspx的頁面設(shè)置
有關(guān)設(shè)置細(xì)節(jié)可以參照index.aspx的有關(guān)設(shè)置。