-
-
/*** - * php mysql 페이징 클래스
- * http://bbs.it-home.org 정리
- */
- 클래스 페이지 매김{
- private $_result;
- private $_count; //레코드 수
- private $_pageMax; //최대 페이지
- private $_page; //현재 페이지
- private $_startPage;// paging Bar 최소값
- private $_endPage; // 페이지 매기기 막대 및 종료 코드
- private $_nextPage; //이전 페이지
- private $_prePage; //다음 페이지
function __construct($table, $pageSize, $getPage){
- $this->_result = $GLOBALS['db']->query('SELECT * FROM '.$table);
- $ this ->_count = $GLOBALS['db']->getRecordNum();
- $this->_pageMax = ceil($this->_count/$pageSize);
- $this-> ; _result = '';
if($_GET[$getPage] == '')
- $this->_page = 1;
- else
- $ this->_page= max(intval($_GET[$getPage]), 1);
-
- $this->_page = min($this->_page, $this->_pageMax ) ;
$offset = ($this->_page - 1) * $pageSize;
- $sql = 'SELECT * FROM '.$table.' offset .','.$pageSize;
- $this->_result = $GLOBALS['db']->query($sql);
- }
-
- 함수 getRecord() {
- return $GLOBALS['db']->getRecord();
- }
-
- function getPageBar($url = '?', $barLn = 10, $style = 1){
- if($style == 1){
- if($barLn % 2 != 0 ){
- $minder = ceil($barLn / 2);
- $big_repair = $minder - 1 ; //위에서 반올림 방법을 사용하면 1을 빼고, 그렇지 않으면 1을 더합니다.
- }else{
- $minder = $big_repair = $barLn / 2;
- }
- $ sml_repair = $minder- 1;
-
- $this->_startPage = ($this->_page $minder) > $this->_pageMax - $barLn: $ this->_page - $sml_repair;
- $this->_endPage = $this->_page < $minder ? $barLn : $this->_page $big_repair;
-
- }elseif($style == 2){
-
- if($this->_page % $barLn == 0){
- $this->_startPage = $ this->_page;
- }else{
- $this->_startPage = ($this->_page > $barLn) $this->_page - ($this->_page % $barLn ) : 1;
- }
- $this->_endPage = $this->_startPage $barLn - 1;
- }
- $this->_url = $url;
- $this->_nextPage = $this->_page 1;
- $this->_prePage = $this->_page - 1;
- $this->_startPage = max($this - >_startPage, 1);//최소 첫 번째 페이지부터
- $this->_endPage = min($this->_endPage, $this->_pageMax);//최대 마지막 페이지까지 페이지
-
-
- $this->_result = '현재 상태: '.$this->_page.'/'. $this ->_pageMax.'페이지, 전체'.$this->_count.'records';
-
- if ($this- >_page > 1)
- $this->_result .= '
- 9
- 3
- '
- else
- $this->_result .= '9
- 3'
-
- for($i = $this->_startPage; $i <= $this->_endPage; $i ) {
- if ($this->_page == $i)
- $this->_result . = ''.$i.'';
- else
- $this->_result.= ''.$i.'';
- }
-
- if ($this->_page != $this->_pageMax) {
- $this->_result .= '4';
- $this-> ;_result .= ' :';
- } else {
- $this->_result.= '4 :';
- }
-
- $this->_result.= '
- function 병아리Form(){
- var submit = true;
- var page_num=document.getElementById("page").value;
- var exp=/^d*$/;
- var objExp=new RegExp(exp);
-
- if(page_num==""){
- Alert("不能为空");
- submit = false;
- }else if(!objExp.test(page_num)){
- Alert("得是数字");
- submit = false;
- }
- return submit;
- }
- script>
-
-
- ';
- return $this->_result;
- }
- }
- ?>
-
复主代码
2、调用示例
-
- $page = new Pagination($table, 5, 'page');
- while($row = $ page->getRecord()){
- echo $row[0],'
';
- }
- echo $page->getPageBar('?',8, 1 );
- ?>
复代码
|