知识大全 分页显示Oracle数据库记录的类(2.0)

Posted 函数

篇首语:人生难得几回搏,此时不搏待何时。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 分页显示Oracle数据库记录的类(2.0)相关的知识,希望对你有一定的参考价值。

分页显示Oracle数据库记录的类(2.0)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  <?php    class TOracleViewPage     var $Table;  //表名  var $MaxLine; //每页显示行数    var $LinkId;  //数据库连接号  var $Id;    //排序参考字段    var $Offset;  //记录偏移量  var $Total;  //记录总数  var $Number;  //本页读取的记录数  var $TopNumber;//读新记录时实际取出的记录数  var $Result;  //读出的结果  var $TopResult;//读新记录时的结果    var $TheFirstPage;//特殊指定第一页的链接  var $StartRec;    //指定第二页的起始记录号    var $TPages;  //总页数  var $CPages;  //当前页数    var $TGroup;  var $PGroup; //每页显示的页号个数  var $CGroup;    var $Condition;  //显示条件 如 where id= $id order by id desc  var $PageQuery;  //分页显示要传递的参数    //   // 以下构造函数 析构函数及初始化函数  //     //构造函数  //参数 表名 最大行数 分页参考的字段 每页显示的页号数    function TOracleViewPage($TB $ML $id)  global $offset;    $this >Table=$TB;  $this >MaxLine=$ML;  $this >Id=$id;    $this >StartRec= ;  if(isset($offset)) $this >Offset=$offset;  else $this >Offset= ;    $this >Condition= ;  $this >TheFirstPage=NULL;  $this >PageQury=NULL;      //初始化  //参数 用户名 密码 数据库  function InitDB($user $password $db)  if (PHP_OS == WINNT ) $dllid=dl( php _oci dll );  $this >LinkId = OCILogon($user $password $db);      //断开  function Destroy()  OCILogoff($this >LinkId);      //   // Set 函数  //     //设置显示条件  //如 where id= $id order by id desc  //要求是字串 符合SQL语法(本字串将加在SQL语句后)    function SetCondition($s)  $this >Condition=$s;      //设置每组的显示个数  function SetNumGroup($pg)  $this >PGroup=$pg;    //设置首页 如无则为NULL  function SetFirstPage($fn)  $this >TheFirstPage=$fn;    //设置起始记录 如无则取默认   function SetStartRecord($)  $this >StartRec=$;      //设置传递参数  // key参数名 value参数值  // 如 setpagequery( id $id);如有多个参数要传递 可多次调用本函数     function SetPageQuery($key $value)  $tmp[key]=$key; $tmp[value]=$value;  $this >PageQuery[]=$tmp;      //   // Get 函数  //     //取记录总数  function GetTotalRec()    $SQL= SELECT Count(*) AS total FROM $this >Table $this >Condition;    $stmt = OCIParse($this >LinkId $SQL);  $bool = OCIExecute($stmt);  if (!$bool)    echo 连接失败! ;  OCILogoff($this >LinkId);  exit;    else     OCIFetch($stmt);  $this >Total=OCIResult($stmt );    OCIFreeStatement($stmt);      //取总页数 当前页  function GetPage()  $this >TPages=ceil($this >Total/$this >MaxLine);  $this >CPages=ceil($this >Offset/$this >MaxLine)+ ;      //取总组数 当前组  function GetGroup()    $this >TGroup=ceil($this >TPages/$this >PGroup);  $this >CGroup=ceil($this >CPages/$this >PGroup);        //   // 工作函数  //     //读取记录  // 主要工作函数 根据所给的条件从表中读取相应的记录  // 返回值是一个二维数组 Result[记录号][字段名]    function ReadList()     $SQL= SELECT * FROM $this >Table $this >Condition ORDER BY $this >Id DESC ;    $stmt = OCIParse($this >LinkId $SQL);  $bool = OCIExecute($stmt);  if (!$bool)    echo 连接失败! ;  OCILogoff($this >LinkId);  exit;    else     $ncols = OCINumCols($stmt);  for ( $i = ; $i <= $ncols; $i++ )  $column_name[$i] = OCIColumnName($stmt $i);  $k= ;    for($j= ;$j<$this >StartRec+$this >Offset;$j++) OCIFetch($stmt);  for($j= ;$j<$this >MaxLine;$j++)  if(OCIFetch($stmt))  $k++;  for($i= ;$i<=$ncols;$i++)  $temp[$column_name[$i]]=OCIResult($stmt $i);  $this >Result[]=$temp;    else break;    $this >Number=$k;      OCIFreeStatement($stmt);  return $this >Result;      //读最新的记录  //topnum指定要读出的记录数    function ReadTopList($topnum)    $SQL= SELECT * FROM $this >Table $this >Condition ORDER BY $this >Id DESC ;    $stmt = OCIParse($this >LinkId $SQL);  $bool = OCIExecute($stmt);  if (!$bool)    echo 连接失败! ;  OCILogoff($this >LinkId);  exit;    else    $ncols = OCINumCols($stmt);  for ( $i = ; $i <= $ncols; $i++ )  $column_name[$i] = OCIColumnName($stmt $i);  $k= ;    for($j= ;$j<$topnum;$j++)  if(OCIFetch($stmt))  $k++;  for($i= ;$i<=$ncols;$i++)  $temp[$column_name[$i]]=OCIResult($stmt $i);  $this >TopResult[]=$temp;    else break;    $this >TopNumber=$k;      OCIFreeStatement($stmt);  return $this >TopResult;        //   // 分页相关  //     //显示当前页及总页数  //本函数在GetPage()后调用   function ThePage()   echo 第 $this >CPages 页/共 $this >TPages 页 ;      //显示翻页按钮  //此函数要在GetPage()函数之后调用  //显示下页 上页 并加上要传递的参数    function Page()   $k=count($this >PageQuery);  $strQuery= ;  //生成一个要传递参数字串  for($i= ;$i<$k;$i++)  $strQuery = & $this >PageQuery[$i][key] = $this >PageQuery[$i][value];      return $strQuery;      function PrePage($strQuery)  $prev=$this >Offset $this >MaxLine;  if($prev>= )  echo <A href=$PHP_SELF?offset= $prev $strQuery class=newslink>上一页</A> ;  else if($this >TheFirstPage!=NULL)  echo <A $this >TheFirstPage class=newslink>上一页</A> ;  else echo 上一页 ;      function NexPage($strQuery)  $next=$this >Offset+$this >MaxLine;  $k=$this >Total $this >StartRec;  if($next<$k)  echo <A href=$PHP_SELF?offset= $next $strQuery class=newslink>下一页</A> ;  else  echo 下一页 ;      //   // 记录分组  //   //显示分组  function NumPage()    $first=($this >CGroup )*($this >PGroup)+ ;  $last=($first+$this >PGroup > $this >TPages)? ($this >TPages+ ):($first+$this >PGroup);  $pr=($this >CGroup >= )?( ($this >CGroup )*($this >PGroup)+ ):( );  $prev=($pr!= )?( ($pr )*$this >MaxLine):( );  $ne=($this >CGroup*$this >PGroup+ <=$this >TPages)?($this >CGroup*$this >PGroup+ ):( );  $next=($ne!= )?( ($ne )*$this >MaxLine):( );    $k=count($this >PageQuery);  $strQuery= ;  //生成一个要传递参数字串  for($i= ;$i<$k;$i++)  $strQuery = & $this >PageQuery[$i][key] = $this >PageQuery[$i][value];      if($first!= )  echo <A href=$PHP_SELF?offset= $prev $strQuery > << cha138/Article/program/Java/hx/201311/25792

相关参考

知识大全 一个相当独立的通用分页控件c#源码

  通用ASPNET数据分页控件  对于几乎所有的数据表现Web应用来说组织好数据的显示方式避免给用户带来混乱的感觉就是最主要的目标之一每个页面显示条记录当然是可以接受的但每页显示条记录就很容易给用户

知识大全 spring分页汇总

  对于分页主要思想无非两种一是从数据库取出所有记录后进行分页另一种思路是在取出数据的同时进行分页然后在页面显示昨晚查了不少资料对目前流行的分页方式总结了下  本人目前有个项目要用到Spring的Jd

知识大全 jsp分页类---统一使用

  一建立数据库分页的类  packagenewsbean;importjavasql*;  publicclassDBConnection//这里使用msjdbcStringsDBDriver="m

知识大全 asp.net下经典数据库记录分页代码

      SELECTTOPPAGESIZENEWSTITLE   FORMNEWSINFOWHERENEW

知识大全 oracle,sqlserver2000分页查询

  前台Ext后台ibatis 数据库分页  ORACLE:  SELECT*FROM(SELECT A*ROWNUMRNFROM表名AWHERE 字段名LIKE(%||

知识大全 一个简单的oracle分页存储过程的实现和调用

  在看了众多的分页存储过程以后发现都是针对sqlserver的而没有oracle的因此想写一个关于oracle的存储过程因为我用到的数据库是oracleoracle分页存储过程的思路于sqlserv

知识大全 使用三层嵌套正确实现Oracle分页

使用三层嵌套正确实现Oracle分页  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  原始记录  

知识大全 asp.net使用listview分页显示数据

  学了这么久的越来越发现net比java简单很多虽然从程序的实现上C#和java几乎就是相同的从写程序的时间来看要比javaweb要快很多可以这么说使用学习java的方法学习或者c#是不错的选择ja

知识大全 oracle 分页问题解决方案

  昨天做完项目后让测试测试了一把测试说分页查询貌似不起作用翻到第页以后看到的数据结果都是相同的当时我就觉得很纳闷不可能啊分页组件应该是好的咋可能有问题呢带着疑问我打开了自己的ide在自己的机器上跑了

知识大全 Oracle循环向数据库中插入记录

Oracle循环向数据库中插入记录  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  declare