<? Php
Class Pager {
// The generated page number (in fact, you do not need to use it)
Var $ pageNumber = '';
// Total number of entries to be classified
Var $ totalItems = 0;
// Data connection problems
Var $ conn;
Var $ SQL;
// Several entries are displayed on each page.
Var $ itemsPerPage = 3;
// Total number of pages
Var $ totalPageNumber = 0;
// Current page number!
Var $ currentPageNumber = 1;
// Display several page numbers on a page
Var $ length = 10;
// The url to be paged
Var $ url = '';
Function Pager ($ conn, $ SQL, $ currentPageNumber, $ itemsPerPage, $ length, $ url ){
$ This-> currentPageNumber = $ currentPageNumber;
$ This-> conn = $ conn;
$ This-> SQL = $ SQL;
$ This-> itemsPerPage = $ itemsPerPage;
$ This-> length = $ length;
$ This-> url = $ url;
$ This-> url. = (stristr ($ this-> url ,'? ')! = False )? '&':'? '; // The Url contains "? "Add" & "add "? "
$ This-> getTotalPageNumber ();
}
Function getTotalItems (){
// For adodb
$ Rs = $ this-> conn-> Execute ($ this-> SQL );
$ This-> totalItems = $ rs-> RecordCount ();
Return $ this-> totalItems;
}
Function getTotalPageNumber (){
$ This-> totalPageNumber = ceil ($ this-> getTotalItems ()/$ this-> itemsPerPage );
Return $ this-> totalPageNumber;
}
// The start value of LIMIT start and length in SQL
Function getLimitStart (){
$ Start = ($ this-> currentPageNumber-1) * $ this-> itemsPerPage;
Return $ start;
}
// LIMIT start in SQL, length in length
Function getLimitItems (){
Return $ this-> itemsPerPage;
}
Function getRsPerPage (){
$ ModiSQL = $ this-> SQL. "limit". $ this-> getLimitStart (). ",". $ this-> getLimitItems ();
// I use adodb.
$ ModiRS = $ this-> conn-> Execute ($ modiSQL );
$ Arr = $ modiRS-> GetArray ();
Return $ arr;
}