4、OO风格代码 以下代码中的数据库连接是使用的pear db类进行处理 复制代码 代码如下: ?php // FileName: Pager.class.php // 分页类,这个类仅仅用于处理数据结构,不负责处理显示的工作 Class Pager { var $PageSize; //每页的数量 var $CurrentPageID; //当前的页数 var $NextPageID; //下一页 var $PreviousPageID; //上一页 var $numPages; //总页数 var $numItems; //总记录数 var $isFirstPage; //是否第一页 var $isLastPage; //是否最后一页 var $sql; //sql查询语句
需要说明的地方有两个: 这个类仅仅处理数据,并不负责处理显示,因为我觉得将数据的处理和结果的显示都放到一个类里边实在是有些勉强。显示的时候情况和要求多变,不如自己根据类给出的结果处理,更好的方法是根据这个Pager类继承一个自己的子类来显示不同的分页,比如显示用户分页列表可以:复制代码 代码如下: ?php Class MemberPager extends Pager { function showMemberList() { global $db;
$data = $this- getPageData(); // 显示结果的代码 // ...... } } /// 调用 if ( isset($_GET['page']) ) { $page = (int)$_GET['page']; } else { $page = 1; } $sql = "select * from members order by id"; $pager_option = array( "sql" = $sql, "PageSize" = 10, "CurrentPageID" = $page ); if ( isset($_GET['numItems']) ) { $pager_option['numItems'] = (int)$_GET['numItems']; } $pager = @new MemberPager($pager_option); $pager- showMemberList(); ? 第二个需要说明的地方就是不同数据库的兼容性,在不同的数据库里截获一段结果的写法是不一样的。 mysql: select * from table limit offset, rows pgsql: select * from table limit m offset n ...... 所以要在类里边获取结果的时候需要使用pear db类的limitQuery方法。ok,写完。PHP教程