【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数据导入导出完成数据的备份和还原(不会造成数据 ...
随机推荐
- 奇怪吸引子---Dadras
奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...
- [leetcode]Sort Colors @ Python
原题地址:https://oj.leetcode.com/problems/sort-colors/ 题意: Given an array with n objects colored red, wh ...
- iOS开发-UIActivityIndicatorView简单使用
软件开发的时候经常会遇到半天才加载出来数据的情况,不管是程序写的烂,还是说本来网速比较慢,一般都都会给个提示让用户感觉到我们在努力的加载数据,iOS可以通过UIActivityIndicatorVie ...
- Neo4j 查询某标签节点个数语句 删除某标签全部节点语句
查询:MATCH (n:标签名) RETURN count(n) 删除:MATCH (n:标签名) DELETE n
- Android利用RecognizerIntent识别语音并简单实现打电话动作
关于Android利用RecognizerIntent识别语音并简单实现打电话,详细看实现代码例如以下: package com.example.recognizerintentactivity; i ...
- Jquery的分页插件
Jquery的分页插件, 用起来还不错. 来自: http://flaviusmatis.github.io/simplePagination.js/ 下载地址: https://github.c ...
- Mac关闭摄像头
为了防止黑客入侵,我们可以手动执行命令,关掉摄像头设备的访问权限,让黑客去看黑夜吧. Mac关闭禁用摄像头的方法,打开终端,拷贝如下代码,回车,输入管理员密码,再次拷贝,回车. sudo chmod ...
- js undefined易错分析
undefined 以下是错误写法: data = undefined; alert(undefined==false);//这样判断会输出false; if(data!=undefined || d ...
- Windows 服务安装教程
一.安装服务1.已管理员的身份启动CMD2.输入 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 回车3.输入 InstallUtil.exe Win ...
- asp.net集合类
1.返回IEnumerable类型 protected void Page_Load(object sender, EventArgs e) { IEnumerable ie = AllGet(); ...