注册 登录
编程论坛 ASP技术论坛

[求助]非常郁闷的问题

威龙嘉少 发布于 2007-10-10 17:30, 732 次点击

我做留言分页处理的时候,在分页显示的下面有多出了一条留言,而且这条留言是下一页的开始的那一天留言,当留言显示尾页 的时候,分页下面也就没有了留言了,有谁知道这是怎么回师啊,搞了几天了都没有看出来哪里错了,请高手指教啊,感激不尽,谢谢!
代码:
<%
set conn=server.createobject("adodb.connection")
DSNtemp = "Driver={Microsoft Access Driver (*.mdb)};"
DSNtemp = DSNtemp & "DBQ=" & server.mappath("xuesheng.mdb")
conn.open DSNtemp
set rs=Server.CreateObject("adodb.recordset")
sql ="select * from ly order by id desc"
rs.open sql,conn,1,1

if rs.eof and rs.bof then
response.Write("暂时还没有任何留言!")
else
totalput=rs.recordcount
response.Write(totalput)
listnum=10
rs.pagesize=listnum
if currentpage<1 then
currentpage=1
end if
if (currentpage-1)*listnum > totalput then
if (totalput mod listnum)=0 then
currentpage=totalput \ listnum
else
currentpage=totaaput \ listnum + 1
end if
end if
if currentpage=1 then
showContent
showpage totalput,listnum,"liuyan0.asp"
else
if (currentpage-1)* listnum < totalput then
rs.move (currentpage-1)*listnum
showContent
showpage totalput,listnum,"liuyan0.asp"
else
currentpage=1
showContent
showpage totalput,listnum,"liuyan0.asp"
end if
end if
rs.close
end if
set rs=nothing
conn.close
set conn=nothing
%>
<%
ly=replace(ly,chr(13)&chr(10),"<br>")
sub showcontent
do while not rs.eof
response.Write("<hr / color='blue' width='60%'>")
response.Write("<table border='1' bordercolor='red' width='60%'align='center'>")
response.Write("<tr>")
response.Write("<td>编号:</td>"&"<td>"&rs("id")&"</td>")
response.Write("</tr>")
response.Write("<tr>")
response.Write("<td>姓名:</td>"&"<td>"&rs("name")&"</td>")
response.Write("</tr>")
response.Write("<tr>")
response.Write("<td>留言:</td>"&"<td>"&rs("ly")&"</td>")
response.Write("</tr>")
response.Write("<tr>")
response.Write("<td>性别:</td>"&"<td>"&rs("sex")&"</td>")
response.Write("</tr>")
a=a+1
if a>listnum then exit do
rs.movenext
response.Write("</table>")
loop
end sub
%>
<%
function showpage(totalnumber,listnum,filename)
dim n
if totalnumber mod listnum=0 then
n=totalnumber \ listnum
else
n=totalnumber \ listnum + 1
end if
response.write "<form method=post action="&filename&">"
response.write " "
if CurrentPage<2 then
response.write "<font color='#000080'>首页 上一页</font> "
else
response.write "<a href="&filename&"?page=1>首页</a> "
response.write "<a href="&filename&"?page="&CurrentPage-1&">上一页</a> "
end if
if n-currentpage<1 then
response.write "<font color='#000080'>下一页 尾页</font>"
else
response.write "<a href="&filename&"?page="&(CurrentPage+1)&">下一页</a> "
response.write "<a href="&filename&"?page="&n&">尾页</a>"
end if
response.write "<font color='#000080'> 共<b>"&totalput&"</b>条留言 每页<b>"&listnum&"</b>条留言</font> "
'response.write "<font color='#000080'>转到:</font><input class=smallInput type='text' name='page' size=4 maxlength=10 value="&Currentpage&">"
'response.write "<input class=buttonface type='submit' value='Go' name='cndok'></form>"
end function
%>

9 回复
#2
hmhz2007-10-10 17:47

一个分页有必要那么麻烦吗?看我这个数字分页的比你那高级多了吧

[CODE]<table border="1" width="100%" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#C0C0C0">
<tr>
<td width="20%">留言者</td><td width="60%">留言内容</td><td width="20%">留言时间</td>
</tr>
<%
page=request.querystring("page")
if page="" then page=1 end if
pages = "8"
set rs=server.createobject("adodb.recordset")
rs.open "select * from gbook where online=True order by addtime desc",conn,1,1
rs.pagesize = pages
if not(rs.eof or rs.bof) then
maxpagecount=rs.pagecount
rs.absolutepage = page
i=0
pagestart=page-5
pageend=page+5
if pagestart<1 then pagestart=1 end if
if pageend>maxpagecount then pageend=maxpagecount end if
rcount=rs.RecordCount
do while not rs.eof and i <rs.pagesize
%>
<tr>
<td><%=rs("Uersname")%></td><td><%=rs("Conts")%></td><td><%=rs("addtime")%></td>
</tr>
<%
rs.movenext
i=i+1
loop
rs.close
set rs=nothing
else
%>
<tr><td colspan="3">暂时没有留言!</td></tr>
<%end if%>
<tr>
<td colspan="3">
<a href="?page=1"><font face="webdings">7</font></a>
<%
for i=pagestart to pageend
if i=0 then i=1 end if
response.write " <a href=""?page="&i&""">"&i&"</a> "
next
%>
<a href="?page=<%=maxpagecount%>"><font face="webdings">8</font></a> <%=page%>/<%=maxpagecount%>页; 每页:<%=pages%>条; 共:<%=rcount%>
</td>
</tr>
</table>[/CODE]
#3
威龙嘉少2007-10-10 18:30
你的的确比我的科学啊,学习了,哈哈,谢谢啊,可以在问有个问题吗?用DW做分页处理的时候总是出现:
错误类型:
ADODB.Field (0x80020009)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
版主有没有什么高见,可是不出现这样的错误提示啊,这主要是应为数据库里没有数据的缘故,难到就不能象编程一样实现,没有数据的时候显示,还没有任何留言吗?
#4
hmhz2007-10-11 09:22

你为什么非要使用 DW 来做分页呢?网上有那么多分页代码,套用一下就可以了,何必使用 DW 这个垃圾工具呢?
DW 只能做静态的,比如网页布局等等,网站是动态的,像 asp 等程序类的代码是对数据库进行相关操作的,DW 是做不到与数据库连接的,即使使用 DW 做出来的分页代码,却不能与数据库相连,又怎么能对数据库里的数据库进行分页呢?

所以,关于程序类的只能手写,千万不要使用 DW 或其他任何工具进行编辑!

[此贴子已经被作者于2007-10-11 9:23:07编辑过]

#5
永夜的极光2007-10-11 10:47

不知道楼上用的是什么工具呢,不会直接用记事本写吧?我个人觉得DW是一个相当好用的工具,特别是做asp

#6
gundamlj2007-10-11 16:45

做ASP的用DW 我还是第一次听说!!!

#7
永夜的极光2007-10-11 16:57
那不知道楼上用什么工具??
#8
zhongx2007-10-11 20:48
以下是引用hmhz在2007-10-11 9:22:05的发言:

你为什么非要使用 DW 来做分页呢?网上有那么多分页代码,套用一下就可以了,何必使用 DW 这个垃圾工具呢?
DW 只能做静态的,比如网页布局等等,网站是动态的,像 asp 等程序类的代码是对数据库进行相关操作的,DW 是做不到与数据库连接的,即使使用 DW 做出来的分页代码,却不能与数据库相连,又怎么能对数据库里的数据库进行分页呢?

所以,关于程序类的只能手写,千万不要使用 DW 或其他任何工具进行编辑!




真的???......

#9
威龙嘉少2007-10-11 21:17
DW可以与数据库连接的啊,而且做ASP也很好啊,不知道你有什么好的工具?
#10
yms1232007-10-11 22:40
我说过建议初学者不要使用Dreamweaver MX2004的代码自动生成功能,因为那个程序自动生成的代码很多都不符合要求,也就是说根本不配套。真想学写程序就要亲自去写代码,等你把代码写到非常熟练之后,你就知道为什么不能使用Dreamweaver MX2004的代码自动生成功能了。
目前使用DW个人建议初学者只限于做网页界面,写程序不要使用自动生成功能。
1