ASP 排行显示问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 03:07:18
<%
set rs=server.CreateObject("adodb.recordset")
sql="select top "&web("indexnewshits")&" * from news order by hits desc"
rs.open sql,conn,1,1
if not rs.eof then
for i=1 to web("indexnewshits")
%>
<div class="centralcentral_2_1"><font color="#003366">·</font><a href="info.asp?id=<%=rs("id")%>&classid=<%=rs("classid")%>&<%=pinyin(rs("bt"))%>" target="_blank"><%=left(rs("bt"),web("indexnewshitsrf"))%></a></div>
<%
rs.movenext
next
end if
rs.close
set rs=nothing
%>

web("indexnewshits") 的值是10 但显示只显示1条记录..不知道是什么原因
这样也不行啊.都试过了

用response.write sql看看sql 语句有没有错误,web("indexnewshits") 是不是确实等于10,

再检查一下数据库中是否确实有多条数据。

————————————————————————————
从你提供的代码,实在看不出错在哪里。
用for循环时,应该在循环内部加判断语句,否则,如果数据库记录数小于10,会出现错误类型:

ADODB.Field (0x80020009)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。

改成这样试试:

<%
set rs=server.CreateObject("adodb.recordset")
sql="select top "&web("indexnewshits")&" * from news order by hits desc"
rs.open sql,conn,1,1
for i=1 to web("indexnewshits")
if not rs.eof then
%>
<div class="centralcentral_2_1"><font color="#003366">·</font><a href="info.asp?id=<%=rs("id")%>&classid=<%=rs("classid")%>&<%=pinyin(rs("bt"))%>" target="_blank"><%=left(rs("bt"),web("indexnewshitsrf"))%></a></div&