卡提諾論壇's Archiver

srv0915 發表於 2009-5-18 23:24

[卡國17天傳說#7] ASP會員管理 第七章 查詢功能

[i=s] 本帖最後由 mayday03225 於 2009-5-20 09:38 編輯 [/i]

第七章 查詢功能
有了分頁後,當然不能忘了查詢的功能。
當資料數愈來愈多時,如果沒有查詢功能,那可會找資料找到瘋掉!

先把查詢的欄位和按鈕加上去,像底下這樣
[IMG]http://i647.photobucket.com/albums/uu195/srv0915/-1.jpg[/IMG]

把查詢和其他3個功能放在一起,當然,這邊也是用同一個文件「actListMember.asp」來判斷查詢的功能
這個步驟大多都參數帶來帶去而已,請大家自行看程式碼。

這邊主要要跟大家分享的是,如何做到關鍵字的萬用查詢。
萬用查詢,也可以說是簡單查詢啦~只要輸入關鍵字,不需要選擇欄位,它會把符合的資料都列出來。
看一下會員資料的欄位有,「帳號」、「姓名」、「電話」、「手機」、「地址」、「性別」和「備註」
萬用查詢的做法,就是把不容易重複的欄位挑出來。比方說,當我輸入0917的時候,很自然的會聯想到我是要查手機號碼,不可能有人的姓名是0917開頭的吧。當輸入中山路….也該也不會有人的名字叫中山路,更不可能是手機號碼了。依這個邏輯,我們列出要做萬用查詢的欄位有,「帳號」、「姓名」、「電話」、「手機」、「地址」,當然你也可以把其他欄位列進去,這邊只是個示範而已。
列出欄位後,我們要怎麼做呢?
就是生成SQL查詢字串
寫一個簡單的function
Function LoadQuery(keyword)
        LoadQuery = "Where UserId Like '%"&keyword&"%'" & _
                                " OR UserName Like '%"&keyword&"%'" & _
                                " OR Tel = '%"&keyword&"%'" & _
                                " OR Mobile Like '%"&keyword&"%' "
End Function
這是使用SQL的模糊查詢(Like),把關鍵字帶到我們指定的欄位做模糊查詢
在「ListMember.asp」加上底下的程式碼
        keyword = request("keyword")
       
        if keyword <> "" then
                QueryStr = LoadQuery(keyword)
        end if

        SQL = "Select ID,UserId,UserName,Sex,Tel,Mobile,UserMemo From UserData "&QueryStr&""

當keyword不為空時,就組成SQL查詢字串,帶入要執行的SQL語法
如果你還是不太清楚為何要這樣帶入,你可以把SQL語法印出來
Response.write(SQL)

寫到這邊大概完成了2/3
剩下的1/3就是要把keyword的參數帶到換頁連結裡,詳細做法請參考附件內的程式碼。
簡單輸入幾個字看一下成果吧…
[IMG]http://i647.photobucket.com/albums/uu195/srv0915/MWSnap031-1.jpg[/IMG]
[IMG]http://i647.photobucket.com/albums/uu195/srv0915/MWSnap032-1.jpg[/IMG]

很簡單的查詢,再也不用帳號或姓名還是手機或電話,傻傻分不清楚了!

jaby15888 發表於 2009-6-20 22:42

路過學習一下謝謝分享

ayanefan 發表於 2009-6-29 23:48

寫得蠻詳細,感謝分享

极品狼 發表於 2009-12-28 21:49

謝謝。這一章節很精彩。

頁: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.