当前位置:编程学习 > asp >>

利用ASP实现数据库的模糊查询,请指出哪些是主要代码并解释含义

系统根据用户输入的查询信息,利用%进行字符串的匹配,用LIKE对形成的字符串进行比较,在数据库中查询出与用户输入相关的产品的信息,并将信息反馈给用户。主要实现代码如下:
sql2="searchkey="&searchkey&"&anclassid="&anclassid&"&jiage="&jiage&"&action="&action&"&selectname="&selectname
if anclassid<>0 then '//判断查询分类,分类不为空。
select case action
case "1"
sql1=" shopname like '%"&searchkey&"%' and (shichangjia<"&jiage&" or huiyuanjia<"&jiage&" or vipjia<"&jiage&") and anclassid="&anclassid&" "
case "2"
sql1=" pingpai like '%"&selectname&"%' and (shichangjia<"&jiage&" or huiyuanjia<"&jiage&" or vipjia<"&jiage&") and anclassid="&anclassid&" "
case "3"
sql1=" shopcontent like '%"&searchkey&"%' and (shichangjia<"&jiage&" or huiyuanjia<"&jiage&" or vipjia<"&jiage&") and anclassid="&anclassid&" "
end select
else
'//分类为空//
select case action
case "1"
sql1=" shopname like '%"&searchkey&"%' and (shichangjia<"&jiage&" or huiyuanjia<"&jiage&" or vipjia<"&jiage&") "
case "2"
sql1=" pingpai like '%"&selectname&"%' and (shichangjia<"&jiage&" or huiyuanjia<"&jiage&" or vipjia<"&jiage&") "
case "3"
sql1=" shopcontent like '%"&searchkey&"%' and (shichangjia<"&jiage&" or huiyuanjia<"&jiage&" or vipjia<"&jiage&") "
end select
end if
end if
call sss()
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from shop_snsn where "&sql1&" order by adddate desc",conn,1,1

if rs.eof And rs.bof then


Response.Write "<p align='center' > 对不起,没有查询到您需要的商品!</p>"

else

totalPut=rs.recordcount



if currentpage<1 then



currentpage=1


end if



if (currentpage-1)*MaxPerPage>totalput then


if (totalPut mod MaxPerPage)=0 then


currentpage= totalPut \ MaxPerPage


else


currentpage= totalPut \ MaxPerPage + 1


end if


end if



if currentPage=1 then



showContent



showpage totalput,MaxPerPage,"research.asp"


else



if (currentPage-1)*MaxPerPage<totalPut then



rs.move (currentPage-1)*MaxPerPage



dim shopmark



shopmark=rs.shopmark



showContent



showpage totalput,MaxPerPage,"research.asp"


else


currentPage=1



showContent



showpage totalput,MaxPerPage,"research.asp"


end if

end if



end if
答案:这么大段代码,一条一条解释,实在有点难,因为很多句都和查询有关
最有关的我觉得应该是这种句型吧:
sql1(sql语句,并命名为SQL1)=" shopname(数据库表中的一个字段) like(你可以理解为"像") '%"&searchkey(这是个变量)&"%' and(算是运算符,和的意思,也就是and两边的条件同时满足时) (shichangjia<"&jiage&" or huiyuanjia<"&jiage&" or vipjia<"&jiage&")(从小括号开始到结束里的代码都是或运算,也就是满足任意其中一个条件即可) and anclassid="&anclassid&" " (最后这句也是当数据库里的字段anclassid的内容等于变量anclassid存放的值的意思)
总的来说,就是检测用户输入的三段信息,当数据库里有那么一条信息的字段与用户输入的三段信息一一对应时,就返回这条信息给用户,当然返回信息的功能不是这句代码里实现的.

代码太长,没有看完,也不知道你ASP的技术是怎么样的一个技术,所以实在不好解释.如果你有基础,我相信你能看懂,如果你没有基础,那就太难解释了,因为还得给你解释数据库知识,基本的流程控制等等内容,这些东西不是一两句能说得清楚的

上一个:我的数据库是access。要怎么才能生成随机id呢,asp以下是代码,求救啊。。。
下一个:asp.net web.config请问下面哪段代码是连接数据库的字符串

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,