站內搜索可分為單參數(根據一個條件查詢一個字段)查詢和多參數(多個條件可選查詢不同的數據庫字段)查詢,單參數查詢在DW MX的簡單記錄集中把篩選條件選擇為“包含”就行了,這時切換到“高級記錄集”模式,SQL語句如下:
SELECT *
FROM user
WHERE uesr LIKE '%MMColParam%'
user為要查詢的數據庫表,uesr為要查詢的字段,MMColParam為查詢變量,從表單提交數據時,把文本域的值賦值給該變量,%%為通配符,LIKE為邏輯運算符,意為“類似於”,用於搜索包含關鍵詞的記錄。以上這些代碼是DW MX自動生成的,比較簡單。下面我們要實現的是多參數查詢,即多個條件,查詢多個數據庫字段,把符合搜索條件的記錄篩出。
這是本人用DW MX做的多參數站內搜索,可根據多個條件查詢記錄。
實例一、根據兩個條件搜索
操作步驟:
1、設計好你的數據庫表,本例用是論壇貼子表,如下圖所示:
bbs_title字段為貼子標題,bbs_uesr字段為主題作者。現在要求,用戶可在查詢頁面選擇以標題或作者搜索。
2、新建一個頁面,保存為HTM或ASP(如果有ASP代碼),本例保存為Search.asp。插入表單、一個文本域和一個列表菜單,表單方法為GET,對應名稱和值如下:
文本域名稱 說明 text 關鍵詞 select 列表菜單,先擇搜索條件列表菜單設置以下:
頁面樣式:
為了實例示方便,搜索界面和搜索結果頁在同一個頁面中,即Search.asp。
3、插入記錄集
啟動“記錄集”對話框,在簡單記錄集中設置好連接和數據數據庫表,如下:
,單擊“測試”,應該有記錄。切換行“高級”模式,如下:
添加一個WHERE子句到SQL文本框中,如下圖:
上圖中的and bbs_dist=0是為了搜索出為貼子主題的記錄,你可以刪除它,如:
WHERE MM_sch LIKE '%MM_text%'
變量設置如下:
這樣,一個多參數搜索頁面就做成了,把記錄集相關字段綁定到頁面,
輸入“李飛”,選擇“作者”,搜索結果如下:
輸入“李飛”,選擇“標題”,搜索結果如下:
技巧:為了把標題中關鍵詞以不同顏色顯示(如上圖所示),標題字段值用一個函數替換關鍵詞,如下:
<%=replace((Recordset1.Fields.Item("bbs_title").Value),request.QueryString("text"), "<font color='#FF0000'>"&request.QueryString("text")&"</font>")%>
把(Recordset1.Fields.Item("bbs_title").Value)換成你的字段,並且將text修改為你設計的文本域名稱。
實例二,根據標題、作者和發表時間搜索記錄
1、在例一的基礎增加一個列表菜單,名稱為tima,設置如下:
123456下一頁