首页 | 站长免费中心 | 新手上路 | 网站运营 | 网页制作 | 图片设计 | 动画设计 | 网页编程 | 网页特效 | 本站专题 | 虚拟主机 | 域名注册 | 网站建设 | 程序下载
       免费空间资源 | 新闻咨询 | 免费域名 | 免费网盘 | 网站推广 | 网站策划 | 建站经验 | 网站优化 | 网页代码 | 源码下载 | 音乐小偷 | 网络赚钱 | 论坛交流
网站建设
网站建设
虚拟主机
虚拟主机
域名注册
域名注册
711网络首页
站长工具
站长工具
网站源码
网站源码
站长论坛
站长论坛

 711网络 网页编程ASP代码

用asp实现多关键字搜索

来源: 互联网    日期:2007-1-13 15:08:59
 

    以上呢在文本框输入多个关键字,中间用空格隔开,然后点击搜索按钮,这样做的目的是什么呢?大家开动一下脑筋,我们是不是在缩小搜索的范围,即搜索出来的结果中既包含“网人”,又包含“教程”、“交流”、“图书”这些关键字。当然关键字之间的间隔符不仅可以是空格,还可以是“,”“、”等等,一般来说空格比较方面输入,你说呢! [转自:711网络工作室 http://www.tc711.com]

    在书写实现这个功能的过程中,我们会使用几个非常重要的asp函数,先来了解一下: [转自:711网络工作室 http://www.tc711.com]

Split()

    函数将一个字符串分割并返回分割结果

    表达式 Split (S[,d])

    实例:

<%
V= Split(A,B,C)
For i = 0 To UBound(V)
Response.Write V(i)
Next
%>

    返回结果: A B C

UBound()

    函数返回指定数组维数的最大可用下标>.

    表达式 Ubound(arrayname [, dimension])

    实例:

<%
i = Array("Monday","Tuesday","Wednesday")
response.write UBound(i)
%>

    返回结果: 2

    Rtrim()

    函数去掉字符串右边的字符串.

    表达式 Rtrim(string)

    LTrim()

    函数去掉字符串左边的空格.

    表达式 LTrim(string)

    REPLACE()

    函数REPLACE()是最有用的字符串函数之一。你可以使用REPLACE()函数,以一个字符串取代另一个字符串的一部分。

    下面咱们来看看实现的方法和代码:

searchdata=request("T1") '从文本框中获得输入的关键字
if trim(searchdata)="" then '如果没有关键字的输入或者只输入的空格,警告!
response.write "<script>alert('请输入查询搜索关键字!');history.back();</script>"response.end
end if

searchdata=replace(searchdata,"'","’")'将获得的字符串中英文单引号换成中文单引号
searchdata=Rtrim(LTrim(searchdata))'去掉获得的字符串最左边空格和最右边空格

sql1="" '网站关键字匹配sql语句
sql2="" '网站标题匹配sql语句
sql3="" '网站简要说明匹配sql语句

searchdatatmp=split(searchdata," ") '将输入的字符串根据空格分开,获得一个数组
max=ubound(searchdatatmp) '得出这个数组的维数,即输入的关键字个数

if max=0 then '如果max等于0说明只输入了一个关键字,那么就不需要循环处理
sql1=sql1&" key like '%" & searchdatatmp(i) & "%' " '网站关键字模糊搜索
sql2=sql2&" sitename like '%" & searchdatatmp(i) & "%' " '网站标题模糊搜索
sql3=sql3&" faq like '%" & searchdatatmp(i) & "%' " '网站简要说明搜索
else '如果含有多个关键字,采用循环处理sql语句
for i=0 to max '如果关键字很多,我们要求每一个搜索都要匹配每一个关键字,通过循环来实现
if i=0 then '写入下面sql语句作为开头,仔细研究一下下面的代码
sql1=sql1&" (key like '%" & searchdatatmp(i) & "%' and "
sql2=sql2&" (sitename like '%" & searchdatatmp(i) & "%' and "
sql3=sql3&" (faq like '%" & searchdatatmp(i) & "%' and "
else
if i=max then '如果循环到最后一个关键字,写入下面sql语句作为结尾
sql1=sql1&" key like '%" & searchdatatmp(i) & "%') "
sql2=sql2&" sitename like '%" & searchdatatmp(i) & "%') "
sql3=sql3&" faq like '%" & searchdatatmp(i) & "%') "
else '如果关键自己不是开头的也不是结尾的,那么循坏写入下面的sql语句
sql1=sql1&" key like '%" & searchdatatmp(i) & "%' and "
sql2=sql2&" sitename like '%" & searchdatatmp(i) & "%' and "
sql3=sql3&" faq like '%" & searchdatatmp(i) & "%' and "
end if
end if
next '循环结束
end if

sql="select * from www where "&sql1&" or "&sql2&" or "&sql3

response.write sql '看看我们这个代码运行的结果是否正确

    在文本框中输入“ASP PHP”,然后点击搜索,记住表单的action="文件名",这个文件里包含以上的代码。
执行结果:

select * from www where (key like '%ASP%' and key like '%PHP%') or
(sitename like '%ASP%' and sitename like '%PHP%') or (faq like '%ASP%' and faq like '%PHP%')

    可以看出我们写的代码是正确的了。下一节我们讲解搜索出结果如果排序,以及怎么实现!



更多的用asp实现多关键字搜索请到论坛查看: http://BBS.TC711.COM



【 双击滚屏 】 【 评论 】 【 收藏 】 【 打印 】 【 关闭 】 来源: 互联网    日期:2007-1-13 15:08:59   

发 表 评 论
查看评论

  您的大名:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
认证编码: 刷新验证码
点评内容: 字数0
  精品推荐  
  本月推荐  
  友情赞助  

关于我们 | 联系我们 | 广告投放 | 留言反馈 | 免费程序 | 虚拟主机 | 网站建设 |  网站推广 |  google_sitemap baidu_sitemap RSS订阅
本站所有资源均来自互联网,如有侵犯您的版权或其他问题,请通知管理员,我们会在最短的时间回复您
Copyright © 2005-2015 Tc711.Com All Rights Reserved 版权所有·711网络   蜀ICP备05021915号
110网监备案 信息产业备案 不良信息举报