您现在的位置是:首页 >

分页显示jsp 分页显示Oracle数据库记录的类(2.0)

火烧 2022-02-27 04:48:19 1042
分页显示Oracle数据库记录的类 2.0    lt ? h     cla TOracleViewPage {    var $Ta le   //表名  var $MaxLi e  //每页显示
分页显示jsp 分页显示Oracle数据库记录的类(2.0)

分页显示Oracle数据库记录的类(2.0)  

  <?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 > << lishixinzhi/Article/program/Java/hx/201311/25792  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码