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教程