首页 详细查询虚拟主机 选机助手1.1 虚拟主机评测 免费虚拟主机 论坛
虚拟主机知识 站长工具 搜索优化(SEO) 建站技术 WEB服务器技术 开发日志
搜虚机

澳门 台湾 上海 广东 山东 福建 江苏 浙江 重庆 河北 河南 黑龙江 吉林 辽宁 内蒙古 海南 山西 陕西 安徽 江西 甘肃 新疆 湖北 湖南 云南 广西 宁夏 贵州 青海

  "钓爱搜索"热词: 100 100M 电信 jsp 网通 虚拟主机 网通 虚拟主机 双线 上海 电信 100M
收录家公司款主机!

免注册添加产品|免注册发布供求信息| 免费注册VIP| 登录

  用asp绘制强大地搜索引擎(5):多关键字搜索           ★★★ 【字体:
用asp绘制强大地搜索引擎(5):多关键字搜索
作者:佚名    文章来源:本站原创    点击数:    更新时间:2008-6-1    
以上呢在文本框输入多个关键字,中间用空格隔开,然后点击搜索按钮,这样做的目的是什么呢?大家开动一下脑筋,我们是不是在缩小搜索的范围,即搜索出来的结果中既包含“网人”,又包含“教程”、“交流”、“图书”这些关键字。当然关键字之间的间隔符不仅可以是空格,还可以是“,”“、”等等,一般来说空格比较方面输入,你说呢!

    在书写实现这个功能的过程中,我们会使用几个非常重要的ASP函数,先来了解一下:

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 '看看我们这个代码运行的结果是否正确

    在文本框中输入“网人 俱乐部”,然后点击搜索,记住表单的action="文件名",这个文件里包含以上的代码。

    执行结果:select * from www where (key like '%网人%' and key like '%俱乐部%') or (sitename like '%网人%' and sitename like '%俱乐部%') or (faq like '%网人%' and faq like '%俱乐部%')

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

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    搜索引擎技术核心揭密(PHP)
    用asp绘制强大地搜索引擎
    用asp绘制强大地搜索引擎(二
    asp简略地搜索引擎代码
    使用ASP建设私人的搜索引擎
    企业网站如何制定搜索引擎优
    搜索引擎必知十大秘技
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    ©2007-2008 SouXuji.com & HostDB.cn. All rights reserved. | 交换链接 | 广告赞助| 联系我们 | 站点地图
    Email:Souxuji@yahoo.com.cn 客服QQ:610413895

    网络收藏夹 航123自助链

    速搜全球 新新web2.0

     

    孙悟空 友情链接