站内搜索可分为单参数(根据
![](/icons/8061yi.gif)
个条件查询
![](/icons/8061yi.gif)
个字段)查询和多参数(多个条件可选查询区别
![](/icons/8061de.gif)
数据库字段)查询
![](/icons/8061dou.gif)
单参数查询在DW MX
![](/icons/8061de.gif)
简单记录集中把筛选条件选择为“包含”就行了
![](/icons/8061dou.gif)
这时切换到“高级记录集”模式
![](/icons/8061dou.gif)
SQL语句如下:
SELECT *
FROM user
WHERE uesr LIKE \'%MMColParam%\'
user为要查询
![](/icons/8061de.gif)
数据库表
![](/icons/8061dou.gif)
uesr为要查询
![](/icons/8061de.gif)
字段
![](/icons/8061dou.gif)
MMColParam为查询变量
![](/icons/8061dou.gif)
从表单提交数据时
![](/icons/8061dou.gif)
把文本域
![](/icons/8061de.gif)
值赋值给该变量
![](/icons/8061dou.gif)
%%为通配符
![](/icons/8061dou.gif)
LIKE为逻辑运算符
![](/icons/8061dou.gif)
意为“类似于”
![](/icons/8061dou.gif)
用于搜索包含关键词
![](/icons/8061de.gif)
记录
![](/icons/8061dou2.gif)
以上这些代码是DW MX自动生成
![](/icons/8061de.gif)
![](/icons/8061dou.gif)
比较简单
![](/icons/8061dou2.gif)
下面我们要实现
![](/icons/8061de.gif)
是多参数查询
![](/icons/8061dou.gif)
即多个条件
![](/icons/8061dou.gif)
查询多个数据库字段
![](/icons/8061dou.gif)
把符合搜索条件
![](/icons/8061de.gif)
记录筛出
![](/icons/8061dou2.gif)
这是本人用DW MX做
![](/icons/8061de.gif)
多参数站内搜索
![](/icons/8061dou.gif)
可根据多个条件查询记录
![](/icons/8061dou2.gif)
例子
![](/icons/8061yi.gif)
、根据两个条件搜索
操作步骤:
1、设计好你
![](/icons/8061de.gif)
数据库表
![](/icons/8061dou.gif)
本例用是论坛贴子表
![](/icons/8061dou.gif)
如下图所示:
![](\"http://127.0.0.1/Files/BeyondPic/2007-4/19/0741913223941252.g<img)
\" _disibledevent=>
bbs_title字段为贴子标题
![](/icons/8061dou.gif)
bbs_uesr字段为主题作者
![](/icons/8061dou2.gif)
现在要求
![](/icons/8061dou.gif)
用户可在查询页面选择以标题或作者搜索
![](/icons/8061dou2.gif)
2、新建
![](/icons/8061yi.gif)
个页面
![](/icons/8061dou.gif)
保存为HTM或ASP(如果有ASP代码)
![](/icons/8061dou.gif)
本例保存为Search.asp
![](/icons/8061dou2.gif)
插入表单、
![](/icons/8061yi.gif)
个文本域和
![](/icons/8061yi.gif)
个列表菜单
![](/icons/8061dou.gif)
表单思路方法为GET
![](/icons/8061dou.gif)
对应名称和值如下:
文本域名称 介绍说明 text 关键词 select 列表菜单
![](/icons/8061dou.gif)
先择搜索条件 列表菜单设置以下:
![](\"http://127.0.0.1/Files/BeyondPic/2007-4/19/0741913223913978.g<img)
\" _disibledevent=>
页面样式:
![](\"http://127.0.0.1/Files/BeyondPic/2007-4/19/0741913223967025.g<img)
\" width=518 _disibledevent=>
为了例子示方便
![](/icons/8061dou.gif)
搜索界面和搜索结果页在同
![](/icons/8061yi.gif)
个页面中
![](/icons/8061dou.gif)
即Search.asp
![](/icons/8061dou2.gif)
3、插入记录集
启动“记录集”对话框
![](/icons/8061dou.gif)
在简单记录集中设置好连接和数据数据库表
![](/icons/8061dou.gif)
如下:
![](\"http://127.0.0.1/Files/BeyondPic/2007-4/19/0741913223987850.g<img)
\" width=435 _disibledevent=>
![](/icons/8061dou.gif)
单击“测试”
![](/icons/8061dou.gif)
应该有记录
![](/icons/8061dou2.gif)
切换行“高级”模式
![](/icons/8061dou.gif)
如下:
![](\"http://127.0.0.1/Files/BeyondPic/2007-4/19/0741913224096210.g<img)
\" width=628 _disibledevent=>
添加
![](/icons/8061yi.gif)
个WHERE子句到SQL文本框中
![](/icons/8061dou.gif)
如下图:
![](\"http://127.0.0.1/Files/BeyondPic/2007-4/19/0741913224047298.g<img)
\" width=468 _disibledevent=>
上图中
![](/icons/8061de.gif)
and bbs_dist=0是为了搜索出为贴子主题
![](/icons/8061de.gif)
记录
![](/icons/8061dou.gif)
你可以删除它
![](/icons/8061dou.gif)
如:
WHERE MM_sch LIKE \'%MM_text%\'
变量设置如下:
![](\"http://127.0.0.1/Files/BeyondPic/2007-4/19/0741913224048489.g<img)
\" width=478 _disibledevent=>
这样
![](/icons/8061dou.gif)
![](/icons/8061yi.gif)
个多参数搜索页面就做成了
![](/icons/8061dou.gif)
把记录集相关字段绑定到页面
![](/icons/8061dou.gif)
输入“李飞”
![](/icons/8061dou.gif)
选择“作者”,搜索结果如下:
![](\"http://127.0.0.1/Files/BeyondPic/2007-4/19/0741913224055915.g<img)
\" _disibledevent=>
输入“李飞”
![](/icons/8061dou.gif)
选择“标题”,搜索结果如下:
![](\"http://127.0.0.1/Files/BeyondPic/2007-4/19/0741913224085413.g<img)
\" _disibledevent=>
窍门技巧:为了把标题中关键词以区别颜色显示(如上图所示)
![](/icons/8061dou.gif)
标题字段值用
![](/icons/8061yi.gif)
个
![](/icons/8061hanshu.gif)
替换关键词
![](/icons/8061dou.gif)
如下:
<%=replace((Record
![](/icons/8061set.gif)
1.Fields.Item(\"bbs_title\").Value),request.QueryString(\"text\"), \"<font color=\'#FF0000\'>\"&request.QueryString(\"text\")&\"</font>\")%>
把(Record
![](/icons/8061set.gif)
1.Fields.Item(\"bbs_title\").Value)换成你
![](/icons/8061de.gif)
字段
![](/icons/8061dou.gif)
并且将text修改为你设计
![](/icons/8061de.gif)
文本域名称
![](/icons/8061dou2.gif)
例子 2
![](/icons/8061dou.gif)
根据标题、作者和发表时间搜索记录
1、在例
![](/icons/8061yi.gif)
![](/icons/8061de.gif)
基础增加
![](/icons/8061yi.gif)
个列表菜单
![](/icons/8061dou.gif)
名称为tima,设置如下:
![](\"http://127.0.0.1/Files/BeyondPic/2007-4/19/0741913224059823.g<img)
\" _disibledevent=>
上图中
![](/icons/8061de.gif)
“不选定条件”值为空
![](/icons/8061dou.gif)
稍后在记录集中设置它
![](/icons/8061de.gif)
默认值
![](/icons/8061dou2.gif)
其它
![](/icons/8061de.gif)
你自己可以任意添加选项和时间
![](/icons/8061dou.gif)
![](/icons/8061yi.gif)
天前值为1
![](/icons/8061dou.gif)
![](/icons/8061yi.gif)
年前值为365
![](/icons/8061dou.gif)
依此类推
![](/icons/8061dou2.gif)
2、打开高级记录集
![](/icons/8061dou.gif)
设置如下:
![](\"http://127.0.0.1/Files/BeyondPic/2007-4/19/0741913224016561.g<img)
\" _disibledevent=>
上图那个MM_tima变量
![](/icons/8061de.gif)
默认值99999999是刚才“不选条件”值为空时
![](/icons/8061dou.gif)
返回99999999
![](/icons/8061dou.gif)
即查询99999999天前
![](/icons/8061de.gif)
记录
![](/icons/8061dou.gif)
这个数值你可以自已设置
![](/icons/8061dou.gif)
如果不选定时间
![](/icons/8061dou.gif)
就查询你
![](/icons/8061de.gif)
数据中第
![](/icons/8061yi.gif)
条记录插入时
![](/icons/8061de.gif)
时间
![](/icons/8061dou.gif)
这样就搜索数据库
![](/icons/8061de.gif)
全部记录了
![](/icons/8061dou2.gif)
=f141 twffan=\"done\">
这里比上例多了
![](/icons/8061yi.gif)
个时间筛选条件bbs_tima>=now
![](/icons/8061kh.gif)
-MM_tima,nwo
![](/icons/8061kh.gif)
是获取当前系统日期时间
![](/icons/8061de.gif)
![](/icons/8061yi.gif)
个
![](/icons/8061hanshu.gif)
,用它减去选定多少天前
![](/icons/8061de.gif)
变量值
![](/icons/8061dou.gif)
即可筛出发表时间大于或等于多少天前
![](/icons/8061de.gif)
记录
![](/icons/8061dou2.gif)
以上两例都是单层SQL查询
![](/icons/8061dou.gif)
你可以依照以上介绍
![](/icons/8061de.gif)
思路方法添AND条件
![](/icons/8061dou.gif)
如果要同时查询两个字段
![](/icons/8061dou.gif)
除了用AND外
![](/icons/8061dou.gif)
还可用OR运算符
![](/icons/8061dou.gif)
比如 WHERE bbs_title LIKE \'%MM_title%\' or bbs_uesr LIKE \'%MM_uesr%\'
![](/icons/8061dou.gif)
它查询bbs_title或者bbs_uesr字段符合搜索条件
![](/icons/8061de.gif)
记录
![](/icons/8061dou2.gif)
但有些记录
![](/icons/8061dou.gif)
比如论坛回复贴子
![](/icons/8061dou.gif)
![](/icons/8061yinwei.gif)
它没有标题
![](/icons/8061dou.gif)
bbs_title字段是空
![](/icons/8061de.gif)
![](/icons/8061dou.gif)
而我要根据回复内容搜索贴子时
![](/icons/8061dou.gif)
就不能显示出主题标题
![](/icons/8061dou2.gif)
如何解决这个问题呢?用嵌套查询可实现这个目
![](/icons/8061de.gif)
例子 3、按标题、作者、回复内容及发表时间搜索记录
![](/icons/8061dou2.gif)
1\\把例 2中
![](/icons/8061de.gif)
select列表菜单添多
![](/icons/8061yi.gif)
项“回复内容”
![](/icons/8061dou.gif)
如下图所示:
![](\"http://127.0.0.1/Files/BeyondPic/2007-4/19/0741913224077212.g<img)
\" width=468 _disibledevent=>