永发信息网

求一个ASP+ACCESS搜索代码

答案:1  悬赏:80  手机版
解决时间 2021-05-17 03:43
数据库地址 /date.mdb   搜索地址 /search.asp
数据库名称 chinavhu 表格1:ID 表格2:NAME 表格3:URL 表格4:IMG 表格5:NINHU
搜索地址翻页和样式 /search.asp?word=关键词&P=2
搜索成竖立显示(和百度的一样),如果搜索的关键词能变色就更好了,不要太美观,代码越简洁越好,我没有多少分,所以也送不了多少分,不过我会很感谢你的!
最佳答案

先在站点建立一数据库,例如可以建立database/SiteSearch.mdb数据库。
在数据库中建立一个URLINDEX表,表中字段有:
URL    文本 (索引:有(无重复))
Title    文本
Description 文本
Summary    文本
Keywords   文本(索引:有(无重复))
表中URL和Keywords字段分别添加了索引.


建立一ASP文件,如dosearch.asp文件代码如下:
<HTML><HEAD><TITLE>产品搜索引擎</TITLE></HEAD>
<BODY MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN=0 TOPMARGIN=0>


<FORM METHOD="post" ACTION="dosearch.asp?act=search">
Query: <INPUT TYPE="Text" NAME="QueryString"><BR>
<INPUT TYPE="Submit" VALUE="Submit">
</FORM>
</CENTER>



<%
dim act
act=request("act")
if(act="search") then
QueryString = Request.form( "QueryString" )
QueryWords = Split( QueryString )
strIndent   = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
' 如果搜索为空则返回
If QueryString = "" Then
Response.Redirect( "default.asp" )
End If
Session.timeout = 2
If IsObject(Session("sitesearch_conn")) Then
    Set conn = Session("sitesearch_conn")
Else
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("database/SiteSearch.mdb"),"",""
    Set Session("sitesearch_conn") = conn
End If


' 查询语句
sql = "SELECt * FROM [URLIndex] WHERe"
   



'搜索Description字段
sql = sql & " ( [Description] LIKE '%" & QueryWords( 0 ) & "%'"   ' First
For i = LBound( QueryWords ) + 1 to UBound( QueryWords )
If QueryWords( i ) <> "" and UCase( QueryWords(i) ) <> "OR" and UCase( QueryWords(i) ) <> "AND" Then
   If uCase( QueryWords( i-1 ) ) = "OR" Then
    sql = sql & " OR [Description] LIKE '%" & QueryWords( i ) & "%'"
   Else
    sql = sql & " AND [Description] LIKE '%" & QueryWords( i ) & "%'"
   End If
End If
Next


' 搜索Keywords字段
sql = sql & " ) OR ( [Keywords] LIKE '%" & QueryWords( 0 ) & "%'"
For i = LBound( QueryWords ) + 1 to UBound( QueryWords )
If QueryWords( i ) <> "" and UCase( QueryWords(i) ) <> "OR" and UCase( QueryWords(i) ) <> "AND" Then
   If uCase( QueryWords( i-1 ) ) = "OR" Then
    sql = sql & " OR [Keywords] LIKE '%" & QueryWords( i ) & "%'"
   Else
    sql = sql & " AND [Keywords] LIKE '%" & QueryWords( i ) & "%'"
   End If
End If
Next



' 搜索Title字段
sql = sql & " ) OR ( [Title] LIKE '%" & QueryWords( 0 ) & "%'"
For i = LBound( QueryWords ) + 1 to UBound( QueryWords )
If QueryWords( i ) <> "" and UCase( QueryWords(i) ) <> "OR" and UCase( QueryWords(i) ) <> "AND" Then
   If uCase( QueryWords( i-1 ) ) = "OR" Then
    sql = sql & " OR [Title] LIKE '%" & QueryWords( i ) & "%'"
   Else
    sql = sql & " AND [Title] LIKE '%" & QueryWords( i ) & "%'"
   End If
End If
Next



' 搜索Summary字段
sql = sql & " ) OR ( [Summary] LIKE '%" & QueryWords( 0 ) & "%'"
For i = LBound( QueryWords ) + 1 to UBound( QueryWords )
If QueryWords( i ) <> "" and UCase( QueryWords(i) ) <> "OR" and UCase( QueryWords(i) ) <> "AND" Then
   If uCase( QueryWords( i-1 ) ) = "OR" Then
    sql = sql & " OR [Summary] LIKE '%" & QueryWords( i ) & "%'"
   Else
    sql = sql & " AND [Summary] LIKE '%" & QueryWords( i ) & "%'"
   End If
End If
Next


sql = sql & " )"



    '
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn, 3, 3    
   
    Response.Write "<BR><B> 你搜索的是: </B> " & QueryString   
   
    Response.Write "<BR><B> 搜索的关键字: </B> "
For i = LBound( QueryWords ) to UBound( QueryWords )
Response.Write "<BR>" & strIndent & i & ": " & QueryWords( i )
Next


    ' Print the SQL String
    Response.Write "<BR><B> sql 语句 : </B> " & sql
' Print the Results
    Response.Write "<BR><B> 结果&nbsp;&nbsp;&nbsp;&nbsp;: </B> <UL>"
On Error Resume Next
rs.MoveFirst
Do While Not rs.eof
Response.Write "<BR>" & "<A HREF='OpenPage.asp?IndexURL=" & rs.Fields("URL").Value & "'>" & rs.Fields("Title") & "</A> - "
Response.Write rs.Fields("Description") & "<BR>"
Response.Write "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT SIZE=2>URL: " & rs.Fields("URL") & "</FONT>"
Response.Write "<HR SIZE=1 WIDTH=200 ALIGN=LEFT>"
rs.MoveNext
Loop
Response.Write "</UL>"
end if  
%>



</BODY>
</HTML>

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我输了一切,我该怎么办?
假如你是一名教师很努力地工作,学生也很喜欢
邵东县邵阳昭阳电动车这个地址怎么能查询到,
在银行转账只有对方账号代码,可以转吗?
电脑很卡该怎么办?
在郫县那里可以买到黄金双歧因子
淇县鹤壁华都工艺玻璃门这个地址在什么地方,
VB 6.0中 SELECt * FROM。。。语句可用
历史形象在哪呀 ???
怎样把好友加到新建的群里
慈利县张家界惠普(幸福中路)这个地址在什么地
魔术师跟幻术师区别在哪
大哥过生日祝福语大全,纪念张国荣哥哥的唯美
什么样的显示器支持HDMI1.4
电脑死机后不能开机怎么回事?
推荐资讯
天龙八部武当门派的图样NPC坐标
QQ炫舞155升166的升级经验是多少
西安区牡丹江博泓作文学校(西三条路)这个地址
用什么方法可以快递去眼袋?我的眼袋很大!
excel里面关于函数公式的问题?
跪求潜行者高秒伤打发
荷塘月色是谁唱的?
谁帮我点寻仙
天门市天门新华村地址在哪里啊
最近有什么好听的歌?介绍几首、
手机分期付款2
炫舞什么时候有团队任务?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?