专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Asp教程 » 站内搜索代码:站内搜索程序代码 »正文

站内搜索代码:站内搜索程序代码

来源: 发布时间:星期四, 2009年2月12日 浏览:502次 评论:0


站内搜索可分为单参数(根据个条件查询个字段)查询和多参数(多个条件可选查询区别数据库字段)查询单参数查询在DW MX简单记录集中把筛选条件选择为“包含”就行了这时切换到“高级记录集”模式SQL语句如下:

SELECT *
FROM user
WHERE uesr LIKE \'%MMColParam%\'

user为要查询数据库表uesr为要查询字段MMColParam为查询变量从表单提交数据时把文本域值赋值给该变量%%为通配符LIKE为逻辑运算符意为“类似于”用于搜索包含关键词记录以上这些代码是DW MX自动生成比较简单下面我们要实现是多参数查询即多个条件查询多个数据库字段把符合搜索条件记录筛出

这是本人用DW MX做多参数站内搜索可根据多个条件查询记录

例子、根据两个条件搜索

操作步骤:

1、设计好你数据库表本例用是论坛贴子表如下图所示:

\" _disibledevent=>

bbs_title字段为贴子标题bbs_uesr字段为主题作者现在要求用户可在查询页面选择以标题或作者搜索

2、新建个页面保存为HTM或ASP(如果有ASP代码)本例保存为Search.asp插入表单、个文本域和个列表菜单表单思路方法为GET对应名称和值如下:

文本域名称 介绍说明 text 关键词 select 列表菜单先择搜索条件 列表菜单设置以下:

\" _disibledevent=>

页面样式:

\" width=518 _disibledevent=>

为了例子示方便搜索界面和搜索结果页在同个页面中即Search.asp

3、插入记录集

启动“记录集”对话框在简单记录集中设置好连接和数据数据库表如下:
\" width=435 _disibledevent=>

单击“测试”应该有记录切换行“高级”模式如下:

\" width=628 _disibledevent=>

添加个WHERE子句到SQL文本框中如下图:

\" width=468 _disibledevent=>

上图中and bbs_dist=0是为了搜索出为贴子主题记录你可以删除它如:

WHERE MM_sch LIKE \'%MM_text%\'

变量设置如下:

\" width=478 _disibledevent=>

这样个多参数搜索页面就做成了把记录集相关字段绑定到页面

输入“李飞”选择“作者”,搜索结果如下:

\" _disibledevent=>

输入“李飞”选择“标题”,搜索结果如下:

\" _disibledevent=>

窍门技巧:为了把标题中关键词以区别颜色显示(如上图所示)标题字段值用替换关键词如下:

<%=replace((Record1.Fields.Item(\"bbs_title\").Value),request.QueryString(\"text\"), \"<font color=\'#FF0000\'>\"&request.QueryString(\"text\")&\"</font>\")%>

把(Record1.Fields.Item(\"bbs_title\").Value)换成你字段并且将text修改为你设计文本域名称

例子 2根据标题、作者和发表时间搜索记录

1、在例基础增加个列表菜单名称为tima,设置如下:

\" _disibledevent=>

上图中“不选定条件”值为空稍后在记录集中设置它默认值其它你自己可以任意添加选项和时间天前值为1年前值为365依此类推

2、打开高级记录集设置如下:

\" _disibledevent=>

上图那个MM_tima变量默认值99999999是刚才“不选条件”值为空时返回99999999即查询99999999天前记录这个数值你可以自已设置如果不选定时间就查询你数据中第条记录插入时时间这样就搜索数据库全部记录了

=f141 twffan=\"done\">

这里比上例多了个时间筛选条件bbs_tima>=now-MM_tima,nwo是获取当前系统日期时间,用它减去选定多少天前变量值即可筛出发表时间大于或等于多少天前记录

以上两例都是单层SQL查询你可以依照以上介绍思路方法添AND条件如果要同时查询两个字段除了用AND外还可用OR运算符比如 WHERE bbs_title LIKE \'%MM_title%\' or bbs_uesr LIKE \'%MM_uesr%\' 它查询bbs_title或者bbs_uesr字段符合搜索条件记录但有些记录比如论坛回复贴子它没有标题bbs_title字段是空而我要根据回复内容搜索贴子时就不能显示出主题标题如何解决这个问题呢?用嵌套查询可实现这个目



例子 3、按标题、作者、回复内容及发表时间搜索记录

1\\把例 2中select列表菜单添多项“回复内容”如下图所示:

\" width=468 _disibledevent=>





0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: