ASP:在结果中搜索


我们经常用GOOGLE来搜索东东,也看到了它的在结果中搜索的功能。

在论坛中曾有人问到,如果用 ASP 在搜索结果中再次搜索的问题。

下面就是一个完整的解决方案。

设计思路:

把搜索的内容传递过来,中间用“,”号隔开,统计出搜索的关键字,然后用sql语法的“and”连接起来形成一个新的查询语句。

ASP代码,下面的代码不提供数据库下载,如果你要进行测试,可以新建一个ACCESS数据库,在里面新建一个“capital”字段就可以了。

代码拷贝框
<title>在结果中再搜索</title>
<body bgcolor="#FFFFFF">
<%
u_search=request.form("u_search")
u_prev_search=request.form("u_prev_search")
u_search_within=request.form("u_search_within")


if u_search <> "" then

 if u_prev_search = "" then
  u_prev_search=u_search
else

 u_prev_search=u_prev_search &","& u_search
 g_prev_search=split(u_prev_search,",")
 num_inputted=ubound(g_prev_search)
end if

sql= "select * from states where (capital like '%%"& u_search & "%%') "

if u_search_within = "Yes" then
 for counter =0 to num_inputted-1
  sql=sql& "and (capital like '%%"& g_prev_search(counter) & "%%') "
 next
end if

accessdb="state_info"
cn="DRIVER={Microsoft Access Driver (*.mdb)};"
cn=cn & "DBQ=" & server.mappath(accessdb)

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, cn
' 如果没有找到相应的信息
if rs.eof then
%>
 没有任何记录

<%' 有相应的信息就列出来
else
 rs.movefirst
 do while Not rs.eof
%>
  <%= rs("capital") %><br>
<%
 rs.movenext
 loop
end if
end if
%>
<!-- Begin Form Input Area -->
<form action="<%= request.servervariables("script_name") %>" method="post">
<input type="text" name="u_search" value="<%= u_search %>">
<br>
<%
if u_search <> "" then %>
<input type = "radio" name="u_search_within" checked value="No"> 重新搜索 &nbsp;
<input type = "radio" name="u_search_within" value="Yes"> 在结果中搜索
<%
if u_search_within = "Yes" then %>
<input type = "hidden" name="u_prev_search" value="<%= u_prev_search %>">
<%
else %>
<input type = "hidden" name="u_prev_search" value="<%= u_search %>">
<% end if%>
<br>
<% end if%>
<input type="submit" value="搜索">
</form>
<!-- End Form Input Area -->
<p>&nbsp;</p>
<%= sql %>
[Ctrl+A 全部选择 然后拷贝]

 

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3