回 帖 发 新 帖 刷新版面

主题:求助按年分页问题

我要从数据库中读取数据 并且要按年分页 每页中只显示每一年的数据
请问这个程序应该怎么写 
 谢谢帮助

回复列表 (共9个回复)

沙发

sql="select * from table where time like '2006%'" '假设当前页为2006
sql="select * from table where time like '2007%" '下一页为2007
sql="select * from table where time like '2005%" '上一页为2005
重要的是如何得到上、下一页是哪一年

板凳

主要我这个东西是动态的是从数据库读取出的时间
比如表中的 time字段是存储时间的
我要把time字段中有2007年的所有数据放在一个页中显示,
我点下一页的时候就能看到2006年的数据,
在点下一页能看到2005年的  
这个不知道怎么做  谢谢高手帮忙

3 楼

<%
page=request.querystring("page")
set rs=server.createobject("adodb.recordset")
if page="" then
   sql="select * from table where year(time)=2007"
else
   sql="select * from table where cint(year(time))="& cint(page)
end if
rs.open sql,conn,1,1
if not(rs.bof and rs.eof) then
   do while not rs.eof
   '输出要显示的内容
   ......
   rs.movenext
   loop
   rs.close
   set rs=nothing
else
   if page="" then
      response.write"没有2007年相关的数据!"
   else
      response.write"没有"&page&"相关的数据!"
   end if
   response.end
end if
%>
<%
if page="" then
%>
<a href="?page=2006">下一页</a>
<%
else
%>
<a href="?page=<%=page-1%>">下一页</a>
<%
end if
%>

4 楼

我想问一下 page=request.querystring("page") 中的 page 是从哪里读取出来的.
还有
<%
if page="" then
%>
<a href="?page=2006">下一页</a>
这是什么意思? 
还有这个查询语句怎么无法执行
sql="select * from table where cint(year(time))="& cint(page)
我不是很懂 帮忙解释下 谢谢

5 楼


page是从 下一页 连接点击转页后地址中获取的

<%
if page="" then
%>
<a href="?page=2006">下一页</a>

意思是: 当page获取的值为空时,执行下面的代码。

sql="select * from table where cint(year(time))="& cint(page)

上面的SQL语句无法执行,是因为你设计的数据库中time字段数据类型不是日期类型

改为下面的就可以了

sql="select * from table where time like '%"& page &"%'"

6 楼

啊  是这样啊 我的time的类型是smalldatetime 也不可以吗?
如果这样的类型不可以 什么样的类型可以?
还有如果我想想在页面上显示"上一页"和"下一页"
应该怎么判断? 你这个只显示了下一页
还有谢谢给了我这么多解答  十分感谢

7 楼

代码中的:

sql="select * from table where year(time)=2007"

这句能执行吗?

要显示上一页:

<a href="?page=<%=page-1%>">下一页</a>

把这句替换为:

<a href="?page=<%=page+1%>">上一页</a>
<a href="?page=<%=page-1%>">下一页</a>

就可以了

8 楼

能执行。但是感觉这个程序有点死 如果到了2008年就得改程序了

9 楼


sql="select * from table where year(time)=year(now())"

我来回复

您尚未登录,请登录后再回复。点此登录或注册