php 5连接 oracle 10g

php oracle 分页

<?php
//buyicode studio 20/12/2009
//总记录数
$sql = "select ROWNUM rn from 社員固定情報";
$par = ociparse($db_conn, $sql);
ociexecute($par);
$nRecords = ocifetchstatement($par, $rs);
//取得页码
$page = $_GET['page'];
//定义每页显示信息条数
$page_size = 5;
//当页码参数为空时,将页码设为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 社員固定情報) temp
    where ROWNUM <= $endRow
)
where rn >= $startRow";
//方法二
$cmdstr = "select *
from
(
    select temp.*, ROWNUM rn
    from (select * from 社員固定情報) temp
)
where rn between $startRow and $endRow ";
//执行查询SQL
$parsed = ociparse($db_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:$nRows</td></tr></table>\n<br>";
//显示分页
//Pages: First Prev   1 2 3 4 5 6> Next Last
//总页数
$totalPage = ceil($nRows / $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>';
}

?>

最新 php oracle 数据库连接 数据库分页的更多相关文章

  1. mysql / sqlserver / oracle 常见数据库分页

    空闲时间里用着mysql学习开发测试平台和测试用具, 在公司里将可用的测试平台部署,将数据库换成sqlserver 巴望着能去用oracle的公司 mysql中的分页 limit是mysql的语法se ...

  2. 使用Jsp/Js/Ajax/Json/Jquery/Easyui + Servlet + JDBC + Lucene/Mysql/Oracle完成数据库分页

    package loaderman.action; import java.io.IOException; import java.io.PrintWriter; import java.util.L ...

  3. jsp+oracle实现数据库内容以表格形式在前台显示(包含分页)

    jsp+oracle实现数据库内容以表格形式在前台显示(包含分页) 在文件夹内新增list_emp.jsp 代码如下: <%@ page contentType="text/html& ...

  4. 银行账户管理系统(oracle数据库连接池,数据库的链接,)

    /* * 银行账户管理系统: * 属性:账户id,姓名,金额salary,利息类型: *管理员模块实现的功能: * 1.给用户开户 * 2.查询所有账户信息 * 用户模块实现的功能: * 1.显示用户 ...

  5. Oracle数据库和DB2数据库分页SQL的区别举例

    --------------------------ORACLE数据库分页SQL举例------------------------------------------------ SELECT * ...

  6. MySQL、SqlServer、Oracle三大主流数据库分页查询

    在这里主要讲解一下MySQL.SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法.可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应用 ...

  7. oracle、mysql、db2三大数据库分页方法的整理

    最近项目中经常会涉及到代码中支持三种数据库的分页的功能,自己整理了关于三种数据库的分页的写法,分享给大家,以供大家使用.希望能帮到更多的码友! 先来看一个代码片段: String page = ala ...

  8. Oracle 数据库分页查询的三种方法

    一.Oracle 数据库分页查询的三种方法 1.简介 不能对 rownum 使用 >(大于或等于 1 的数值).>=(大于 1 的数值).=(不等于 1 的数值),否则无结果.所以直接用 ...

  9. 各种数据库分页语句整理以及Oracle数据库中的ROWNUM和ORDER BY的区别

    .oracle数据库分页 select * from (select a.*,rownum rc from 表名 where rownum<=endrow) a where a.rc>=s ...

随机推荐

  1. 数据分析sql常用整理

    [SQL 数据分析常用语句] 2017-07-20 00:00 数据分析 来源:datakong 转自:大数据 • 1 基础查询 • 2 字符串数字日期时间 • 3 聚合数据查询 • 4 子查询 • ...

  2. win10 startup启动目录路径命令

    仅对当前用户生效: C:\Users\Username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 开始-运行 shel ...

  3. osg反走样

    osg::ref_ptr<osg::GraphicsContext::Traits> traits = new osg::GraphicsContext::Traits; traits-& ...

  4. YII2 rules 规则验证器

    [['code','name'],'trim'], ['code','string','max'=>4], [['code','name','status'], 'required'], ['e ...

  5. lspci通过系统总线查看硬件设备信息

    lspci - 列出所有PCI设备 PCI 的科普: PCI(Peripheral Component Interconnect),是一种连接电子计算机主板和外部设备的总线标准. 常见的PCI卡包括网 ...

  6. sql语言的一大类 DML 数据的操纵语言

    -DML(insert,update,delete) 1.插入数据insert into 表名(列,列...)values(值,值...)//当插入的数据与表格一一对应时,列可以省略insert in ...

  7. SPOJ - AMR11J ——(BFS)

    The wizards and witches of Hogwarts School of Witchcraft found Prof. Binn's History of Magic lesson ...

  8. Delphi iOS & macOS App 名称支持国际化多语显示

    作用:在 OSX 图标下方显示 App 中文繁体或简体的名称(系统自动选取) 适用:XE7, XE8 for OSX 操作: 创建一个新工程. 在工程目录下创建二个文件夹(zh_??.lproj)文件 ...

  9. var 在linq中的使用

    一:掌握linq,写出超炫的代码 1. var关键字 [隐式类型] 隐式类型 和 匿名类型的不同叫法. 特性 和 属性 2.隐式类型 就是让编译器来推断的一种语法糖. 二:隐式类型的应用场景 1. 简 ...

  10. java(二)认识类和函数

    java中,声明类使用new关键字 类名 类变量名 = new 类名(构造函数形参表): 静态函数内不能有非静态类,但是可以有非静态函数. package com.company; /** * Cre ...