求一个PHP ORACLE 10G的分页代码

学无止境-逆流而上 2012-04-20 09:46:45
好像网上这种代码不是很多,自己弄了一个,但是有个问题就是无法整体的按时间顺序显示,只能够每一页按时间顺序显示;虽然想到了一个方法:先全部取出到一个数组里,然后根据页面提交的page,从数组里截取显示;但还是想要一个比较成熟的分页程序,也可以是分页类,需要代码!
...全文
94 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我写错了,应该是里面排序,其实我的跟你的语句一样
  • 打赏
  • 举报
回复
不好意思,这是$sqls =<<< SQL
xuzuning 2012-04-21
  • 打赏
  • 举报
回复
看来你是没有弄明白
这个 SQL 框架是不与要动的

$sql = 'select * from tbl_name order by id desc';//你的查询语句
$pagesize = 20;//页记录数
$start = ($page-1)*$pagesize;//起始偏移

$sqls =<<< SQL
SELECT * FROM
(
SELECT A.*, ROWNUM RN
FROM ($sql) A
WHERE ROWNUM < $start+$pagesize
)
WHERE RN >= $start
SQL;

然后用 $sqls 作为查询指令串

就是说:
不分页的时候执行 $sql
分页的时候执行 $sqls

顺便说一下,这个框架是从我的项目中抽出的。不会有问题的
  • 打赏
  • 举报
回复
我的$cmdstr = "select *
from
(
select temp.*, ROWNUM rn
from (select * from student) temp
)
where rn between $startRow and $endRow order by sid asc";
你确定跟MYSQL一样吗?MYSQL是从数据库里全部取出来然后再取一页,而ORACLE是直接从数据库里取一页,总体上分不了页的;
看一下取出的SID吧:
SID第一页
2
6
7
8
9
SID第二页
1
3
4
5
10
总之只能每一页排序,不能总体排序。
9
xuzuning 2012-04-20
  • 打赏
  • 举报
回复
ORACLE 高效分页语句
$sqls =<<< SQL
SELECT * FROM
(
SELECT A.*, ROWNUM RN
FROM ($sql) A
WHERE ROWNUM < $start+$pagesize
)
WHERE RN >= $start
SQL;

$sql 你的查询语句
$start 起始偏移
$pagesize 页记录数
等价于 mysql 的 limit $start,$pagesize
helloyou0 2012-04-20
  • 打赏
  • 举报
回复
Zend framework ....

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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