你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Linux开发
PHP应用分页显示制作详细讲解(4)
 
 return $link;
   }
   else
   {
    return false;
   }
  }

  /***
  *
  * 以二维数组的格式返回结果集
  *
  ***/

  function getPageData()
  {
   if ( $this->numItems )
   {
    if ( $res = $this->getDataLink() )
    {
     if ( $res->numRows() )
     {
      while ( $row = $res->fetchRow() )
      {
       $result[] = $row;
      }
     }
     else
     {
      $result = array();
     }

     return $result;
    }
    else
    {
     return false;
    }
   }
   else
   {
    return false;
   }
  }

  function _setOptions($option)
  {
   $allow_options = array(
     'PageSize',
     'CurrentPageID',
     'sql',
     'numItems'
   );

  foreach ( $option as $key => $value )
  {
   if ( in_array($key, $allow_options) && ($value != null) )
   {
    $this->$key = $value;
   }
  }

  return true;
 }
}
?>
<?php
// FileName: test_pager.php
// 这是一段简单的示例代码,前边省略了使用pear db类建立数据库连接的代码
require "Pager.class.php";
if ( isset($_GET['page']) )
{
 $page = (int)$_GET['page'];
}
else
{
 $page = 1;
}
$sql = "select * from table order by id";
$pager_option = array(
 "sql" => $sql,
 "PageSize" => 10,
 "CurrentPageID" => $page
);
if ( isset($_GET['numItems']) )
{
 $pager_option['numItems'] = (int)$_GET['numItems'];
}
$pager = @new Pager($pager_option);
$data = $pager->getPageData();
if ( $pager->isFirstPage )
{
 $turnover = "首页|上一页|";
}
else
{
 $turnover = "<a href='?page=1&numItems=".$pager->numItems."'>首页</a>|<a href='?page=".$pager->   PreviousPageID."&numItems=".$pager->numItems."'>上一页</a>|";
}
if ( $pager->isLastPage )
{
 $turnover .= "下一页|尾页";
}
else
{
 $turnover .= "<a href='?page=".$pager->NextPageID."&numItems=".$pager->numItems."'>下一页</a>|<a     href='?page=".$pager->numPages."&numItems=".$pager->numItems."'>尾页</a>";
}
?>

  需要说明的地方有两个:

  这个类仅仅处理数据,并不负责处理显示,因为我觉得将数据的处理和结果的显示都放到一个类里边实在是有些勉强。显示的时候情况和要求多变,不如自己根据类给出的结果处理,更好的方法是根据这个Pager类继承一个自己的子类来显示不同的分页,比如显示用户分页列表可以:

<?php
Class MemberPager extends Pager
{
 function showMemberList()
 {
  global $db;

(编辑:aniston)

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089