*****求助一个分页问题!想不明白,老大们给点思路!

lovemei_80 2004-11-21 01:25:44
比如一个新闻系统!

新闻1

新闻2

新闻3

新闻4

...................................

...................................

点击其中任意一个进入显示详细信息。如进入新闻2


标题:新闻2

内容:新闻2

来源:网易

(其他关于新闻2的信息)



***************下面是我想要得分页(不知道是如何个思路)********************

首部 上条新闻 下条新闻 尾部


****************这个分页分的是整个系统的新闻信息***************************

有人说通过id显示

比如:select * from table id="&id&" order by time

可是数据库中的id+1并不一定是这条信息的下一条数据。

可能这个库中有很多种类的新闻,比如商业动态、市场调查

有可能本条信息属于商业动态,但是id+1就是市场调查了

很有可能是id+10才是对应的商业动态的id的下条信息

有高人能够讲的详细些么?

可是观看某条新闻的时候,显示方法是根据传来的id判断显示那条新闻。可是怎么分页呢?

请各位大哥大姐帮帮忙!不知道我说得清楚么?小弟不才,老大们帮帮忙!万分感谢!

...全文
166 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovemei_80 2004-11-22
  • 打赏
  • 举报
回复
楼上的老大,你说得我了解也明白我用以下的可以达到按分类和id分页

ID+1 OR -1是一种例子而已,
是需要根据你的实际应用来
构造SQL语句的

比如当前是按UpdateTime降序在同一CLass里的上一篇文章

可以这样构造

SQL="SELECT TOP 1 * FROM Table WHERE Class=(SELECT class FROM Table WHERE ID="&ID&") AND UpdateTime<(SELECT UpdateTime FROM Table WHERE ID="&ID&")"

***********************可是现在是这个问题了。**********************************

首页 上页 下页 尾页

我在可以加上关键字,用来判断是否到了首页,还能不能够显示首页和上页的连接

可是我通过上页,进行浏览。等浏览到了第一条,也就是最上一条的时候,怎么判断是否还显示上页和首页的连接呢?

我可以通过修改sql语句达到以上的效果,但是感觉慢。

我的做法是修改为top 2 。当到了第一条的时候就算允许显示2条记录,但是数据库中符合条件的只有一条数据。这个时候我获取数据总数。如果总数=1那么不显示首页和上页的连接。

可是我这样是可以达到效果,但是有没有更好的办法呢?

****************************我不是问怎么显示!***********************************

我问的是怎么判断是否当数据id没有上条数据的时候,怎么样判断分页中的首页和上页不显示连接。

尾页和下页同理!

***************************清高手解答,我通过top 2 。然后获取数据总数是否为1来判断是否显示首页和上页的。有没有更好的办法?******************************************************

jingxiaoping 2004-11-22
  • 打赏
  • 举报
回复
第一、首先要把新闻进行分类,这样就需要在数据库中加入一个字段,来区别这条新闻与其他新闻是不属于同一个类别的,这个字段设置为INT类型即可。
比如:
字段值 新闻类型
1 商业动态
2 市场调查

第二、然后在前面显示的时候你就可以按照新闻类型的不同进行分类,比如在首页分别有商业动态、市场调查的链接。
那么你的语句就可以变成

"select * from table where 新闻分类的字段="&id '此处的id为上一面链接传过来的值(为了跟数据表方便,所以此处,也将值相应调整成为1,2)
第三,你说的分页,我想是不是新闻系统的分类呢?
如果是的话,我可以给你一个关于这方面的简单例子,你可以参考一下。
lovemei_80 2004-11-22
  • 打赏
  • 举报
回复
哎。这个问题很难么?为什么这么有名的地方没有人回答呢?

难道这么著名的论坛,竟然无人回答,难道太简单了,无需回答?
lovemei_80 2004-11-22
  • 打赏
  • 举报
回复
why?到现在都没有帮我么?
nice2002 2004-11-22
  • 打赏
  • 举报
回复
gz
zola2399 2004-11-22
  • 打赏
  • 举报
回复
up
lovemei_80 2004-11-22
  • 打赏
  • 举报
回复
楼上的,你说的是不可以得,你说的是指系统中只有唯一的一个class。如果系统中有若干个class的时候这么作就是错误的,比如现在有三个class。

id属于class1

然而id+1可能属于class3

而id-1就可能属于class2

可是我要求得分页,分的是某一个class其中的所有数据信息!

zhuangjunx 2004-11-22
  • 打赏
  • 举报
回复
up
qihboy 2004-11-22
  • 打赏
  • 举报
回复
哇....在这里也看到EASON007了...呵...

对了,NB UBB啥时候再开呀???
eason007 2004-11-22
  • 打赏
  • 举报
回复
如果不用取上下一篇文章的标题的话,只是通过固定连接,例如上一篇,下一篇的连接的话,可以用如下方法。

例如:
<a href="?id=[本文id]&action=up">上一篇</a>
<a href="?id=[本文id]&action=down">下一篇</a>

因为连接没有加文件名,so,连接会跳会本页,这时,只需在页头读文章内容时对action的内容进行处理就行了,
例如

id=request("id")
cid=request("class")

if request("action")="up" then
sql="select top 1 * from [tbl] where id<"&id&" and class="&cid&" order by id desc"
elseif request("action")="down" then
sql="select top 1 * from [tbl] where id>"&id&" and class="&cid
else
sql="select * from [tbl] where id="&id&" and class="&cid
end if

如此这样足够了。至于大小于符号及order by的方向,随你自己掌握
lovemei_80 2004-11-22
  • 打赏
  • 举报
回复
有人看明白我问的什么了么?
zc2cm 2004-11-21
  • 打赏
  • 举报
回复
我给你讲吧
你先这样查询,当然打开新闻的时候用ID来打开的(当然也用别的数据字段来打开的)
打开后你把ID记上,上条新闻是id-1 ,下条新闻是id+1
-------------------------------------------------------代码如下:
id=request("id")
sql="select * from [table] where id="&id
rs.open sql,conn,1,1
bt=rs("新闻标题")
xiatiao=id+1
shangtiao=id-1
sql="select * from [table] where id="&xiaotiao
rs1.open sql,conn,1,1
bt1=rs1("新闻标题")
sql="select * from [table] where id="&shangtiao
rs2.open sql,conn,1,1
bt2=rs2("新闻标题")
----------------------------------------------
当前新闻标题:<%=bt%>
下条新闻标题:<%=bt1%>
前一条新闻标题:<%=bt2%>
lovemei_80 2004-11-21
  • 打赏
  • 举报
回复
高人帮帮忙。怎么解决。已经到第一个,或者最后一个时,无法继续点击的问题
yqh1314 2004-11-21
  • 打赏
  • 举报
回复
SQL="SELECT TOP 1 * FROM Table WHERE Class=(SELECT class FROM Table WHERE ID="&ID&") AND UpdateTime<(SELECT UpdateTime FROM Table WHERE ID="&ID&")"
xyp730000 2004-11-21
  • 打赏
  • 举报
回复
可是这个时候(再点向上)的时候已经不存在记录了。那么这个时候就出现空了。怎么加个判断使得不能点向上了呢!

if rs.eof and rs.bof then
end if
hj3793 2004-11-21
  • 打赏
  • 举报
回复
上条新闻 下条新闻

移动指针得到上下条的id号,然后再显示了........
lovemei_80 2004-11-21
  • 打赏
  • 举报
回复
ID+1 OR -1是一种例子而已,
是需要根据你的实际应用来
构造SQL语句的

比如当前是按UpdateTime降序在同一CLass里的上一篇文章

可以这样构造

SQL="SELECT TOP 1 * FROM Table WHERE Class=(SELECT class FROM Table WHERE ID="&ID&") AND UpdateTime<(SELECT UpdateTime FROM Table WHERE ID="&ID&")"
可是现在是这个问题了。

比如 1 2 3 4.................

现在是第2条记录,当我(点向上)的时候显示的是第一条记录

可是这个时候(再点向上)的时候已经不存在记录了。那么这个时候就出现空了。怎么加个判断使得不能点向上了呢!

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧