>백엔드 개발 >PHP 튜토리얼 >php mysql 페이징 클래스(php 초보자 항목)

php mysql 페이징 클래스(php 초보자 항목)

WBOY
WBOY원래의
2016-07-25 09:00:541504검색
  1. /***

  2. * php mysql 페이징 클래스
  3. * http://bbs.it-home.org 정리
  4. */
  5. 클래스 페이지 매김{
  6. private $_result;
  7. private $_count; //레코드 수
  8. private $_pageMax; //최대 페이지
  9. private $_page; //현재 페이지
  10. private $_startPage;// paging Bar 최소값
  11. private $_endPage; // 페이지 매기기 막대 및 종료 코드
  12. private $_nextPage; //이전 페이지
  13. private $_prePage; //다음 페이지

  14. function __construct($table, $pageSize, $getPage){

  15. $this->_result = $GLOBALS['db']->query('SELECT * FROM '.$table);
  16. $ this ->_count = $GLOBALS['db']->getRecordNum();
  17. $this->_pageMax = ceil($this->_count/$pageSize);
  18. $this-> ; _result = '';

  19. if($_GET[$getPage] == '')

  20. $this->_page = 1;
  21. else
  22. $ this->_page= max(intval($_GET[$getPage]), 1);
  23. $this->_page = min($this->_page, $this->_pageMax ) ;

  24. $offset = ($this->_page - 1) * $pageSize;

  25. $sql = 'SELECT * FROM '.$table.' offset .','.$pageSize;
  26. $this->_result = $GLOBALS['db']->query($sql);
  27. }
  28. 함수 getRecord() {
  29. return $GLOBALS['db']->getRecord();
  30. }
  31. function getPageBar($url = '?', $barLn = 10, $style = 1){
  32. if($style == 1){
  33. if($barLn % 2 != 0 ){
  34. $minder = ceil($barLn / 2);
  35. $big_repair = $minder - 1 ; //위에서 반올림 방법을 사용하면 1을 빼고, 그렇지 않으면 1을 더합니다.
  36. }else{
  37. $minder = $big_repair = $barLn / 2;
  38. }
  39. $ sml_repair = $minder- 1;
  40. $this->_startPage = ($this->_page $minder) > $this->_pageMax - $barLn: $ this->_page - $sml_repair;
  41. $this->_endPage = $this->_page < $minder ? $barLn : $this->_page $big_repair;

  42. }elseif($style == 2){
  43. if($this->_page % $barLn == 0){
  44. $this->_startPage = $ this->_page;
  45. }else{
  46. $this->_startPage = ($this->_page > $barLn) $this->_page - ($this->_page % $barLn ) : 1;
  47. }
  48. $this->_endPage = $this->_startPage $barLn - 1;
  49. }
  50. $this->_url = $url;
  51. $this->_nextPage = $this->_page 1;
  52. $this->_prePage = $this->_page - 1;
  53. $this->_startPage = max($this - >_startPage, 1);//최소 첫 번째 페이지부터
  54. $this->_endPage = min($this->_endPage, $this->_pageMax);//최대 마지막 페이지까지 페이지
  55. $this->_result = '현재 상태: '.$this->_page.'/'. $this ->_pageMax.'페이지, 전체'.$this->_count.'records';
  56. if ($this- >_page > 1)
  57. $this->_result .= '
  58. 9
  59. 3
  60. '
  61. else
  62. $this->_result .= '9
  63. 3'
  64. for($i = $this->_startPage; $i <= $this->_endPage; $i ) {
  65. if ($this->_page == $i)
  66. $this->_result . = ''.$i.'';
  67. else
  68. $this->_result.= ''.$i.'';
  69. }
  70. if ($this->_page != $this->_pageMax) {
  71. $this->_result .= '4';
  72. $this-> ;_result .= ' :';
  73. } else {
  74. $this->_result.= '4 :';
  75. }
  76. $this->_result.= '