asp 多关键词搜索 翻页时显示全部内容,不是要搜索的内容,
asp吧
全部回复
仅看楼主
level 2
销水齐爱 楼主
<%
function ContentList()
dim keyword,Range
keyword=trim(request.form("keyword"))
keyword1=split(keyword," ")
Arrayi=ubound(keyword1)
Range=trim(request.form("Range"))
if Range="" and Keyword="" then
keyword=trim(request.QueryString("keyword"))
Range=trim(request.QueryString("Range"))
end if
if Range="Void" then
response.write "<script language='javascript'>alert('请选择搜索范围');history.back(-1);</script>"
response.end
end if
dim idCount'记录总数
dim pages'每页条数
pages=22
dim pagec'总页数
dim page'页码
page=clng(request("Page"))
dim pagenc'每页显示的分页页码数量=pagenc*2+1
pagenc=2
dim pagenmax'每页显示的分页的最大页码
dim pagenmin'每页显示的分页的最小页码
dim datafrom'数据表名
dim datawhere'数据条件
datafrom="Ameav_News"
if Arrayi=0 then '只有一个关键字时,就不用执行循环了
datawhere=datawhere&"where ViewFlag and NewsName like '%"&keyword&"%'"
else
for a=0 to Arrayi
if a=0 then'循环到第一个关键词时
datawhere=datawhere&"where ViewFlag NewsName like '%"&keyword1(a)&"%' and "
else
if a=Arrayi then '循环到最后关键词时
datawhere=datawhere&"ViewFlag NewsName like '%"&keyword1(a)&"%'"
else
datawhere=datawhere&"ViewFlag NewsName like '%"&keyword1(a)&"%' and"
end if
end if
next
end if
response.write "<script language='javascript'>alert( '"&datawhere&"');</script>"
dim sqlid'本页需要用到的id
dim Myself,PATH_INFO,QUERY_STRING'本页地址和参数
PATH_INFO = request.servervariables("PATH_INFO")
QUERY_STRING = request.ServerVariables("QUERY_STRING")'
if QUERY_STRING = "" then
Myself = PATH_INFO & "?"
elseif Instr(PATH_INFO & "?" & QUERY_STRING,"Page=")=0 then
Myself= PATH_INFO & "?" & QUERY_STRING & "&"
else
Myself = Left(PATH_INFO & "?" & QUERY_STRING,Instr(PATH_INFO & "?" & QUERY_STRING,"Page=")-1)
end if
dim taxis'排序的语句 asc,desc
taxis="order by id desc "
dim i'用于循环的整数
dim rs,sql'sql语句
'获取记录总数
sql="select count(ID) as idCount from ["& datafrom &"] " & datawhere
response.write "<script language='javascript'>alert( '"&sql&"');</script>"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,0,1
idCount=rs("idCount")
'获取记录总数
if(idcount>0) then'如果记录总数=0,则不处理
if(idcount mod pages=0)then'如果记录总数除以每页条数有余数,则=记录总数/每页条数+1
pagec=int(idcount/pages)'获取总页数
else
pagec=int(idcount/pages)+1'获取总页数
end if
'获取本页需要用到的id============================================
'读取所有记录的id数值,因为只有id所以速度很快
sql="select id from ["&datafrom&"] " & datawhere & taxis
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
rs.pagesize = pages '每页显示记录数
if page < 1 then page = 1
if page > pagec then page = pagec
if pagec > 0 then rs.absolutepage = page
for i=1 to rs.pagesize
if rs.eof then exit for
if(i=1)then
sqlid=rs("id")
else
sqlid=sqlid &","&rs("id")
end if
rs.movenext
next
'获取本页需要用到的id结束============================================
end if
if(idcount>0 and sqlid<>"") then'如果记录总数=0,则不处理
'用in刷选本页所语言的数据,仅读取本页所需的数据,所以速度快
sql="select * from ["& datafrom &"] where id in("& sqlid &") "&taxis
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
while not rs.eof '填充数据到表格
Response.Write "<tr>" & vbCrLf
select case Range
case "Products"
case "News"
NewsName=rs("NewsName")
response.write "<tr>"
response.write "<td width=""5%"" height=""28"" align=""center""><img src=""../imgbsj/ndot.gif"" width=""7"" height=""9"" /></td>"
response.write "<td width=""80%"" align=""left""><a href=""Newview.asp?"&rs("ID")&"-"&rs("SortID")&".html"" title="""&rs("NewsName")&""" class=""newsi"">"&NewsName&"</a></td>"
response.write "<td width=""10%"" align=""left"">["&FormatDate(rs("AddTime"),13)&"]</td>"
response.write "<td width=""5%""></td>"
response.write "</tr>"
case "Download"
NewsName=rs("DownName")
response.write "<tr>"
response.write "<td width=""5%"" height=""28"" align=""center""><img src=""../imgbsj/ndot.gif"" width=""7"" height=""9"" /></td>"
response.write "<td width=""80%""><a href=""Down.asp?Soft="&rs("ID")&""" class=""newsi"">"&rs("DownName")&"</a></td>"
response.write "<td width=""10%"">["&FormatDate(rs("AddTime"),13)&"]</td>"
response.write "<td width=""5%""></td>"
response.write "</tr>"
case "Others"
end select
rs.movenext
wend
else
response.write "<tr><td align='center'>暂无相关信息</td></tr></table>"
exit function
end if
Response.Write "<tr>" & vbCrLf
Response.Write "<td co
lsp
an='2' align='right'>" & vbCrLf
pagenmin=page-pagenc '计算页码开始值
pagenmax=page+pagenc '计算页码结束值
if(pagenmin<1) then pagenmin=1 '如果页码开始值小于1则=1
if(page>1) then response.write ("<a href='"& myself &"Page=1&Range="&Range&"&Keyword="&server.urlencode(Keyword)&"'><font color='#000000' style='FONT-SIZE: 14px; FONT-FAMILY: Webdings'>首页</font></a> ") '如果页码大于1则显示(第一页)+
if(pagenmin>1) then response.write ("<a href='"& myself &"Page="& page-(pagenc*0+1) &"&Range="&Range&"&Keyword="&server.urlencode(Keyword)&"'><font color='#039bda' style='FONT-SIZE: 14px; FONT-FAMILY: Webdings'>上一页</font></a> ") '如果页码开始值大于1则显示(更前)
if(pagenmax>pagec) then pagenmax=pagec '如果页码结束值大于总页数,则=总页数
for i = pagenmin to pagenmax'循环输出页码
if(i=page) then
response.write (" <font color='#ff6600'>["& i &"]</font> ")
else
response.write ("[<a href='"& myself &"Page="& i &" &Range="&Range&" &Keyword="&keyword&"' class='newsi'>"& i &"</a>]")
end if
next
if(pagenmax<pagec) then response.write (" <a href='"& myself &"Page="& page+(pagenc*0+1) &"&Range="&Range&"&keyword="&server.urlencode(keyword)&"'><font style='FONT-SIZE: 14px; FONT-FAMILY: Webdings' color='#039bda'>下一页</font></a> ") '如果页码结束值小于总页数则显示(更后)
if(page<pagec) then response.write ("<a href='"& myself &"Page="& pagec &"&Range="&Range&"&Keyword="&server.urlencode(Keyword)&"'><font style='FONT-SIZE: 14px; FONT-FAMILY: Webdings' color='#000000'>末页</font></a>") '如果页码小于总页数则显示(最后页)
Response.Write "</td>" & vbCrLf
Response.Write "</tr>" & vbCrLf
Response.Write "</table>" & vbCrLf
rs.close
set rs=nothing
end function
%>
2015年08月20日 02点08分 1
level 5
看看分页的网址中有没有你需要的参数,不是更换表单传送方式
2015年08月20日 03点08分 2
网址有参数,能带入关键词
2015年08月20日 05点08分
回复
��ˮ�밮
:那你再看看获取的参数,然后如果正确的话再测试数据库的查询语句
2015年08月20日 07点08分
level 9
1、分页不要整页整页的刷新
2、建议ajax刷新加载,这样可以保留参数
2015年08月20日 13点08分 3
level 12
pagec等于小于零,你就会显示所有记录!
2015年08月21日 00点08分 4
level 1
2015年08月23日 10点08分 5
1