"定义每页最大文章标题显示量MaxPerPage,你可以自己修改这里的数字来达到你的最佳显示效果 const MaxPerPage=18 dim totalPut dim CurrentPage dim TotalPages dim i,j
"假如返回的页面信息是空的,也就是如果你直接输入index.asp,那么就用这里定义的页数第一页 if not isempty(request("page")) then currentPage=cint(request("page")) else currentPage=1 end if dim sql dim rs dim rstype dim typesql dim typeid,typename
"如果返回的栏目信息为空,那么就用这里定义的栏目,这里指定的是第三个栏目 if not isEmpty(request("typeid")) then typeid=request("typeid") else typeid=3 end if
"通过返回的栏目typeid号,打开数据库显示指定的栏目,并把其值交给typename set rstype=server.createobject("adodb.recordset") typesql="select * from type where typeID="&cstr(typeid) rstype.open typesql,conn,1,1 typename=rstype("type") rstype.close %>
"打开指定的记录集article并按照文章的加入日期排序,在这里打开有两个条件,一个是利用like来查询数据库并显示相关文章标题,还有就是通过返回的typeid显示指定栏目的文章 <% sql="select * from article where title like '%"&request("txtitle")&"%' and typeid="+cstr(typeid)+" order by date desc" Set rs= Server.CreateObject("ADODB.Recordset") rs.open sql,conn,1,1
"如果查询数据库的结果指向记录集的开始或者结尾,表示数据库中没有任何相关文章 if rs.eof and rs.bof then response.write "<p align='center'>没有或没有找到任何文章</p>" else "如果数据库内有内容,则取得数据库内文章数目 totalPut=rs.recordcount "假如页面参数currentpage小于1,则指定为1 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 "如果分页的页数为1或者页面数减1乘与页面最大文章数小于文章总数,则用已经做好的function showpage在showContent子程序也就是显示文章标题部分的上面和下面显示分页程序 if currentPage=1 then showpage totalput,MaxPerPage,"index.asp" showContent showpage totalput,MaxPerPage,"index.asp" else if (currentPage-1)*MaxPerPage<totalPut then rs.move (currentPage-1)*MaxPerPage "定义书签 dim bookmark bookmark=rs.bookmark showpage totalput,MaxPerPage,"index.asp" showContent showpage totalput,MaxPerPage,"index.asp" else currentPage=1 showpage totalput,MaxPerPage,"index.asp" showContent showpage totalput,MaxPerPage,"index.asp" end if end if rs.close end if
set rs=nothing "显示文章标题及相关数据库内容子程序 sub showContent dim i i=0
%> <div align="center"><center><table border="1" cellspacing="0" width="589" bordercolorlight="#000000" bordercolordark="#FFFFFF" cellpadding="0"> <tr> <td width="46" align="center" bgcolor="#D0D0D0" height="20"><strong>ID号</strong></td> <td width="381" align="center" bgcolor="#D0D0D0"><strong>文章标题</strong></td> <td width="98" align="center" bgcolor="#D0D0D0"><strong>加入日期</strong></td> <td width="58" align="center" bgcolor="#D0D0D0"><strong>点击</strong></td> </tr> <%do while not rs.eof%> <tr> "依次显示文章ID号,文章标题,文章加入日期及浏览数,这里的openarticle.asp是用来重新定向文章的,以后将为大家介绍 <td height="23" width="46"><p align="center"><%=rs("articleid")%></td> <td width="381"><p align="center"><a href="Javascript:popwin2('openarticle.asp?id=<%=rs("articleid")%>&typeid=<%=cstr(typeid)%>')"><%=rs("title")%></a></td> <td width="98"><p align="center"><font color="red"><i><%=rs("date")%></i></font></td> <td width="58"><p align="center"><%=rs("hits")%></td> </tr> <% "这里是一个循环,每显示一篇文章,则定义的变量i的值加一,当i的值大于或等于页面最大文章数时退出循环 i=i+1 if i>=MaxPerPage then exit do "显示完一篇文章以后,自动移到记录集的下一个记录 rs.movenext loop %> </table> </center></div><% end sub
"显示分页的function function showpage(totalnumber,maxperpage,filename) dim n
"利用文章数算出文章的分页数N if totalnumber mod maxperpage=0 then n= totalnumber / maxperpage else n= totalnumber / maxperpage+1 end if response.write "<form method=Post action="&filename&"?typeid="&typeid&">" response.write "<p align='center'><font color='#000080'>>>分页</font> "
"如果当前页数小于2,则显示的文章首页和上一页不显示连接,否则用当前页数减去1来显示上一页,直接用page=1来显示首页 if CurrentPage<2 then response.write "<font color='#000080'>首页 上一页</font> " else response.write "<a href="&filename&"?page=1&typeid="&typeid&">首页</a> " response.write "<a href="&filename&"?page="&CurrentPage-1&"&typeid="&typeid&">上一页</a> " end if
"假如分页页数小于1,则直接显示下一页和尾页,否则用当前页数加上1来显示下一页,用已经算出的文章分页数N显示文章的尾页 if n-currentpage<1 then response.write "<font color='#000080'>下一页 尾页</font>" else response.write "<a href="&filename&"?page="&(CurrentPage+1)&"&typeid="&typeid&">" response.write "下一页</a> <a href="&filename&"?page="&n&">尾页</a>" end if
<%@ LANGUAGE="VBSCRIPT" %> "打开数据库连接 <!--#include file="conn.asp"--> <%response.buffer=false dim sql dim rs dim articleid "利用update从文章连接处返回的文章号ID更新指定文章的浏览数,以及利用response.redirect重定向文章的连接 articleid=request("id") set rs=server.createobject("adodb.recordset") sql="update article set hits=hits+1 where articleID="&articleid rs.open sql,conn,1,1 rs.close conn.close response.redirect "list.asp?id="&articleid %>