【TP3.2+Oracle】数据进行分页
1、写在前面:mysql的分页 通过limit 关键字进行处理, oracle却没有limit,而是用ROWNUM 字段来进行分页
2、参考示例,TP3.2 代码,其实原理看懂了 其他框架和原生都可以使用:
分页page 使用的TP3.2框架自带的,我就是把sql进行了转换,使其符合oracle 分页的格式。
注意:里面的 Dingsql()方法,在上一篇文章里面有,放在common/function.php里面。
public function index($type=1){
//统计要查询数据的数量
$page_size = 10; //评论固定10条
$page = intval($_REQUEST['p']);
if(empty($page))$page = 1;
//$limit = (($page-1)*$page_size).",".$page_size ; //mysql使用这种,oracle使用下面
//当页码大于1时,每页的开始记录是 (页码-1) * 每页记录数 +1 -- >> 适用于oracle分页
$startRow = ($page - 1) * $page_size + 1;
$endRow = $page * $page_size;
$select1 = "SELECT JGDA.JGID, JGDA.SNAME, COUNT(DISTINCT SALETIME.KHID) KHQTY, COUNT(DISTINCT SALETIME.KHID || '^' || SALETIME.SALEDATE) RQQTY, RQYD.YAER, RQYD.MONTH, SUM(SALENET) SALENET, SUM(BILLQTY) BILLQTY FROM CSC.SALETIME , CSC.KHDA, CSC.RQYD, CSC.V_JGLEN, CSC.JGDA WHERE SALETIME.KHID = KHDA.KHID AND SUBSTR(KHDA.JGID,1, V_JGLEN.LEN)= JGDA.JGID AND SALETIME.SALEDATE = RQYD.DATE_XG GROUP BY JGDA.JGID, JGDA.SNAME, RQYD.YAER, RQYD.MONTH ";
switch ($type){
case 1:
$select = $select1;
break;
default:
$select = $select1;
break;
}
$page_sql = "select *
from
(
select temp.*, ROWNUM rn
from (".$select.") temp
)
where rn between $startRow and $endRow ";
//$sql = $select_count1;
$sql = $page_sql; //oracle分页sql
$list = DingSql($sql); //一个页面的数据<=$page_size条
//分页
//$count = DingSql($select_count1);
$count = DingSql($select); //所有符合条件的数据
$total = count($count);
$listRows = C('LIST_ROWS') > 0 ? C('LIST_ROWS') : 10;
$REQUEST = (array)I('request.');
//$page = new \Think\Page($total, $listRows, $_REQUEST);
$page = new \Think\Page($total, $listRows, $_REQUEST);
if($total>$listRows){
$page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
}
$p =$page->show();
$this->assign('_page', $p? $p: '');
$this->assign('_total',$total);
//echo "<pre>";var_dump($list);
$this->assign('meta_title',$this->meta_title);
$this->assign('_list',$list);
$this->display();
}
3、效果:

4、总结:刚开始我以为很难,没想到结合起来,其实挺简单的。
【TP3.2+Oracle】数据进行分页的更多相关文章
- ORACLE 分页 java 用jdbc方式以 sys账号连接oracle数据的问题
2,3,4,6,8 betwenen 为闭区间,前后都包括 select * from(select a.*,rownum rn from (select * from student) a ) ...
- Oracle数据库面试题【转载】
1. Oracle跟SQL Server 2005的区别? 宏观上: 1). 最大的区别在于平台,oracle可以运行在不同的平台上,sql server只能运行在windows平台上,由于windo ...
- CS窗体程序数据列表分页
以前,觉得winform程序分页很无趣,也没实际意义,直到近期的项目实践中让我认识到原来winform数据列表分页也是非常有必要的,因为由于数据量过大的情况,当窗体在初始加载数据的时候如果不做条件的限 ...
- mysql / sqlserver / oracle 常见数据库分页
空闲时间里用着mysql学习开发测试平台和测试用具, 在公司里将可用的测试平台部署,将数据库换成sqlserver 巴望着能去用oracle的公司 mysql中的分页 limit是mysql的语法se ...
- Access大数据高效分页语句
Access大数据高效分页语句 oracle的分页查询可以利用rowid伪列. db2的分页查询可以利用row_number() over()聚合函数. mysql有limit. access仿佛先天 ...
- Oracle数据库面试题(转)
1. Oracle跟SQL Server 2005的区别? 宏观上: 1). 最大的区别在于平台,oracle可以运行在不同的平台上,sql server只能运行在windows平台上,由于windo ...
- Oracle和Mysql分页的区别
一.Mysql使用limit分页 select * from stu limit m, n; //m = (startPage-1)*pageSize,n = pageSize PS: (1)第一个参 ...
- Oracle数据泵(Data Dump)错误汇集
Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一些自己使用数据泵(Data Dump)过程当中遇到的问题以及解决方法.都是在使用过程中遇到的问题,以后陆 ...
- [转]Oracle数据块体系的详细介绍
数据块概述Oracle对数据库数据文件(datafile)中的存储空间进行管理的单位是数据块(data block).数据块是数据库中最小的(逻辑)数据单位.与数据块对应的,所有数据在操作系统级的最小 ...
- oracle数据导入/导出
Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据 ...
随机推荐
- easyloader分析与使用
转载自:http://www.cnblogs.com/haogj/archive/2013/04/22/3036685.html 使用脚本库总要加载一大堆的样式表和脚本文件,在 easyui 中,除了 ...
- gradlew 命令行 build 调试 构建错误 Manifest merger failed MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 【图片识别】java 图片文字识别 ocr (转)
http://www.cnblogs.com/inkflower/p/6642264.html 最近在开发的时候需要识别图片中的一些文字,网上找了相关资料之后,发现google有一个离线的工具,以下为 ...
- php ci框架中载入css和js文件失败的原因及解决方法
在将html页面整合到ci框架里面的时候,载入css和js失败. 原因是ci框架是入口的框架 对框架中文件的全部请求都须要经过index.php处理完毕,当载入外部的css和js文件的时候要使 用ba ...
- maven 下载源码downloadsources
mvn eclipse:eclipse -Ddownloadsources=true -Ddownloadjavadocs=true
- linux:C++的socket编程
基本的局域网聊天 局域网聊天TCP服务端: #include <sys/types.h> #include <sys/socket.h> #include <stdio. ...
- 【转】Andorid中Intent的使用-返回数据给上一个活动
第一个Activity A启动另外一个Activity B,B返回数据给A ============================================================= ...
- C#中RSA加密解密和签名与验证的实现
RSA加密算法是一种非对称加密算法.在公钥加密标准和电子商业中RSA被广泛使用.RSA是1977年由罗纳德•李维斯特(Ron Rivest).阿迪•萨莫尔(Adi Shamir)和伦纳德•阿德曼(Le ...
- MYSQL优化优化再优化!
1.数据库设计和表创建时就要考虑性能 2.sql的编写需要注意优化 3.分区 4.分表 5.分库 .数据库设计和表创建时就要考虑性能 mysql数据库本身高度灵活,造成性能不足,严重依赖开发人员能力. ...
- vue refs v-for 使用注意
当 v-for 用于元素或组件的时候,引用信息将是包含 DOM 节点或组件实例的数组. https://cn.vuejs.org/v2/api/#ref https://www.w3cplus.com ...