<?php
$t1 = xdebug_time_index();
$conn = oci_connect("SCOTT","TIGER","192.168.1.244:1521/orcl");
if(!$conn){
$e = oci_error();
print htmlentities($e['message']);
exit();
} //总记录数
$sql = "select ROWNUM rn from EXAMPLE";
$par = oci_parse($conn, $sql);
oci_execute($par);
$nRecords = ocifetchstatement($par, $rs); //取得页码
$page = $_GET['page'];
//定义每页显示信息条数
$page_size = 20;
//当页码参数为空时,将页码设为1
if ($page == "")
{
$page = 1;
}
//当页码大于1时,每页的开始记录是 (页码-1) * 每页记录数 +1
$startRow = ($page - 1) * $page_size + 1;
$endRow = $page * $page_size; //方法一:
$cmdstr = "select *
from
(
select ROWNUM rn ,temp.*
from (select * from EXAMPLE) temp
where ROWNUM <= $endRow
)
where rn >= $startRow"; //方法二:
//$cmdstr = "select * from example where rowid in(select rid from(select rownum rn,rid from(select rowid rid,id from EXAMPLE order by id desc) where rownum<".$endRow.")where rn>".$startRow.")order by id desc";
echo $cmdstr; //执行查询SQL
$parsed = ociparse($conn, $cmdstr);
ociexecute($parsed);
$nrows = ocifetchstatement($parsed, $results); echo "<html><head><title>Oracle PHP Test</title></head><body>";
echo "<center><h2>Oracle PHP Test</h2>\n"; //表字段名获取
$arrName = array_keys($results);
echo "<table border=1 cellspacing='0' width='70%'>\n<tr>\n";
for ($i = 0; $i < count($arrName); $i++)
{
echo "<td>" . $arrName[$i] . "</td>\n";
}
echo "</tr>\n";
//循环输出记录
for ($i = 0; $i < $nrows; $i++)
{
echo "<tr>\n";
foreach ($results as $data)
{
echo "<td>$data[$i]</td>\n";
}
echo "</tr>\n";
}
echo "<tr><td colspan='" . count($arrName) . "'> Number of Rows:".$nRecords."</td></tr></table>\n<br>";
//显示分页
//Pages: First Prev 1 2 3 4 5 6> Next Last
//总页数
$totalPage = ceil($nRecords / $page_size);
//上一页链接
$Prev = $page - 1;
if ($Prev < 1)
{
$Prev = 1;
}
//下一页链接
$Next = $page + 1;
if ($Next > $totalPage)
{
$Next = $totalPage;
}
//输出上一页链接
if ($page <> 1)
{
echo '<span><a href="?page=1">First</a></span>';
echo '<span><a href="?page=' . $Prev . '">Prev</a></span>';
}
else
{
echo '<span>First</span>';
echo '<span>Prev</span>';
}
//页码数字链接
//显示的数字个数
$pageNumber = 5;
//页码数算法
$pagebegin = $page - $pageNumber;
if ($page == 1)
{
$pageend = $pageNumber;
}
else
{
$pageend = $page + $pageNumber;
}
if ($pagebegin <= 0)
{
$pagebegin = 1;
}
if ($pageend > $totalPage)
{
$pageend = $totalPage;
}
//一次向前翻$pageNumber行
if ($page > $pageNumber)
{
echo '<span><a href="?page=' . ($page - $pageNumber) . '"><<</a></span>';
}
//输出动态生成的页码链接
for ($i = $pagebegin; $i <= $pageend; $i++)
{
if ($i == $page)
{
echo '<span style="background:#FFCC99">' . $i . '</span>';
}
else
{
echo '<span><a href="?page=' . $i . '">' . $i . '</a></span>';
}
}
//一次向后翻$pageNumber行
if (($totalPage - $page) > 5)
{
echo '<span><a href="?page=' . ($page + $pageNumber) . '">>></a></span>';
}
//输出下一页链接
if ($page <> $totalPage)
{
echo '<span><a href="?page=' . $Next . '">Next</a></span>';
echo '<span><a href="?page=' . $totalPage . '">Last</a></span>';
}
else
{
echo '<span>Next</span>';
echo '<span>Last</span>';
}
oci_close($conn);
$t2 = xdebug_time_index();
echo "<br/><br/>execute time:";
echo $t2-$t1;
echo "s";
?>

php与oracle11g经典分页的更多相关文章

  1. Oracle中经典分页代码!

    在Oracle中因为没有top关键字,所以在sqlserver中的分页代码并不适用于Oracle,那么在Oracle中如何来实现分页呢? --查询所有数据 STUNO STUNAME STUAGE S ...

  2. php 经典分页(推荐和laypage配合)

    学习地址:http://www.imooc.com/video/2463 <?php //(ps:推荐使用laypage整站式跳转来渲染分页按钮样式比较舒服http://laypage.layu ...

  3. ThreadLocal经典分页

    package com.netease.live.admin.util; import com.netease.live.common.util.Constant; /** * * @author b ...

  4. php动态分页类

    <?php /** * 页面名称:cls_page.php */ class Page { private $each_disNums; //每页显示的条目数 private $nums; // ...

  5. MySQL分页优化中的“INNER JOIN方式优化分页算法”到底在什么情况下会生效?

    本文出处:http://www.cnblogs.com/wy123/p/7003157.html 最近无意间看到一个MySQL分页优化的测试案例,并没有非常具体地说明测试场景的情况下,给出了一种经典的 ...

  6. php分页类 可直接调用

    <?php /** * 分页类 * @author xyy * 调用分页实例 $subPages=new SubPages(数据总条数);//实例化分页类 * //$subPages->s ...

  7. php 页面分页样式 示例

    <?php class SubPages { private $each_disNums; //每页显示的条目数 private $nums; //总条目数 private $current_p ...

  8. x86-7-页式管理(Paging)

    x86-7-页式管理(Paging) 页式管理是重中之重! 在段式管理下操作系统的运作出现了很多问题,因为段的长度不定,在分配内存时,可能会发生内存中的空闲区域小于要加载的段,或者空闲区域远远大于要加 ...

  9. SSH, 整合分页功能,连带DAO经典封装

    任何一个封装讲究的是,使用,多状态.Action:     任何一个Action继承分页有关参数类PageManage,自然考虑的到分页效果,我们必须定义下几个分页的参数.并根据这个参数进行查值. 然 ...

随机推荐

  1. Entity Framework(四):使用DbModelBuilder API创建表结构

    DbContext类有一个OnModelCreating方法,它用于流利地配置领域类到数据库模式的映射.下面我们以fluent API的方式来定义映射.首先,先将Product类注释掉,重新编写该类, ...

  2. php if语句判定my查询是否为空

    <?php header("Content-type: text/html; charset=utf-8"); $username=$_GET['username']; $p ...

  3. 关于CSS 里的_width是什么意思???

    下划线_IE6支持下划线,IE7和firefox等均不支持下划线. 你那个代码的意思就是IE6下面宽度 449px;其他浏览器下宽度 460px; 友情提醒:这种HACK写法,得把_width写在正常 ...

  4. JSP指令与动作元素

    include指令 语法:<%@ include file="URL" %> 其中,URL表示一个要包含的页面. include动作(是一个动作标签) 语法:<j ...

  5. redhad linux 7 安装ftp服务

    1. 查看有没有安装 rpm -qa|grep vsftpd 2.安装vsftp yum install vsftpd -y 3. 启动vsftp /sbin/service vsftpd start ...

  6. 1455: 罗马游戏[左偏树or可并堆]

    1455: 罗马游戏 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1861  Solved: 798[Submit][Status][Discuss] ...

  7. Cocos2d-x学习之 整体框架描述

    1.Cocos2d-x 整体描述 和传统的游戏引擎一样,cocos2d-x作为一个2d的游戏引擎,其也有以下几大概念组成: 导演(CCDiretor): 在cocos2d-x引擎中,CCDirecto ...

  8. 元素隐藏 css

    参考:http://www.zhangxinxu.com/wordpress/2011/03/css-%E7%9B%B8%E5%AF%B9%E7%BB%9D%E5%AF%B9relativeabsol ...

  9. 160510、jQuery给input绑定回车事件

    <script type="text/javascript" src="Scripts/jquery-1.6.2.js"></script&g ...

  10. HDFS 常用Shell命令

    HDFS Shell命令 概述 HDFS Shell命令允许使用命令行在HDFS存储中进行文件夹和文件操作. 如文件夹的增删改查.文件的增删改查等. 开始练习hadoop时,打开Linux之后要用 s ...