首页 | 心情日记 | 建站心得 | 编程技术 | 大盘分析 | 股市信息 | 学习园地 | 电脑技巧 | 物流外贸 | 另类其它 | 站长推荐 | 给我留言 | 相册

用户登陆
用户:
密码:
 
不保存保存一天
保存一月保存一年

站点日历
73 2024 - 4 48
 123456
78910111213
14151617181920
21222324252627
282930


站点统计

最新评论

日志搜索

 标题   内容


ASP和C#隐藏文件下载路径 IF IE的用法详解
未知 用asp实现多关键字搜索   [ 日期:2010-01-23 18:03:11 ]   [ 来自:本站原创 ]

海外邮件中继,海外退信中继,美国高速VPS,不限流量VPN,邮局维护和管理,邮件网关,EMOS邮件中继,POSTFIX邮件中继,Winwebmail邮件中继,Winmail邮件中继,DBMail邮件中继,JDMail邮件中继,Exchange邮件中继,MDaemon邮件中继 淘宝店:http://shantan.taobao.com 云邮科技官网:www.yunrelay.com

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

在书写实现这个功能的过程中,我们会使用几个非常重要的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 '看看我们这个代码运行的结果是否正确


在文本框中输入“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%')

暂时没有评论
   发表评论 - 不要忘了输入验证码哦!
作者: 用户:  密码:  我要注册 验证码: 
为防止广告注册机程序,验证码不会自动显示,请点击此处显示或者(刷新)验证码!
评论:

禁止表情
禁止UBB
禁止图片
识别链接
识别关键字
确定发布?
最多可以输入200个字,目前你已经输入了0个字;你今日还可以发表10条评论!
 
   

CopyRight © 2008-2010 广东金融学院030904班 All Rights Reserved
Powered by www.030904.com