PHP

페이징

은둔한량 2013. 5. 15. 16:15
반응형

 

  1. function paging($page, $page_row, $page_scale){
  2.     global $total_record;
  3.     global $id;
  4.  
  5.     //총 페이지 수 구하기
  6.     $total_page = ceil($total_record / $page_scale);
  7.  
  8.     //페이징의 시작 페이지 구하기
  9.     $start_page = ((ceil($page / $page_scale) - 1) * $page_scale) + 1;
  10.  
  11.     //페이징의 마지막 페이지 구하기
  12.     $end_page = $start_page + $page_scale - 1;
  13.  
  14.     if($end_page >= $total_page) $end_page = $total_page;
  15.  
  16.     //페이지를 표시할 변수 초기화
  17.     $paging_str = "";
  18.  
  19.     //페이지가 1보다 작으면 1로 세팅
  20.     if($page < 1) $page = 1;
  21.  
  22.     //1페이지 이상부터는 [처음] 버튼이 보이게
  23.     if($page > 1){
  24.         $paging_str .= "[<a href='".$PHP_SELF."?page=1&id=".$id."'>처음</a>]";
  25.     }
  26.  
  27.     //시작페이지번호가 1보다 크면 [이전]버튼 보이게(1페이지는 1-10, 2페이지는 11-20 == 2페이지부터 보인다)
  28.     if($start_page > 1){
  29.         $paging_str .=" &nbsp;[<a href='".$PHP_SELF."?page=".($start_page - 1)."&id=".$id."'>이전</a>]";
  30.     }
  31.  
  32.     //총 페이지수가 1보다 크거나 같을경우 페이지번호가 출력되게
  33.     if($total_page >= 1){
  34.         for($i=$start_page;$i<=$end_page;$i++){
  35.             if($page == $i){
  36.                 $paging_str .="<b>[$i]</b>";
  37.             } else {
  38.                 $paging_str .="&nbsp;[<a href='".$PHP_SELF."?page=".$i."&id=".$id."'>$i</a>]&nbsp;";
  39.             }
  40.         }
  41.     }
  42.  
  43.     //총 페이지가 마지막 페이지보다 작을경우 마지막페이지번호를 총 페이지번호로 넣기
  44.     if($total_page < $end_page) $end_page = $total_page;
  45.  
  46.     //마지막페이지하고 총 페이지하고 다를경우 [다음]버튼이 출력
  47.     if($end_page != $total_page){
  48.         $paging_str .=" [<a href='".$PHP_SELF."?page=".($end_page + 1)."&id=".$id."'>다음</a>] ";
  49.     }
  50.  
  51.     //현재페이지와 총 페이지가 같지않을경우 [끝] 버튼이 출력
  52.     if($page != $total_page){
  53.         $paging_str .="[<a href='".$PHP_SELF."?page=".$total_page."&id=".$id."'>끝</a>]";
  54.     }
  55.  
  56.     return $paging_str;
  57.  
  58. }
  59.  
  60.  
  61.  
  62. //현재 페이지 변수 설정하기
  63. if(!$page) $page = 1;
  64. //한 화면에 나타날 게시물 수
  65. $page_row = 10;
  66. //한 화면에 나타날 페이지 수
  67. $page_scale = 10;
  68.  
  69. //총 게시물 수 구하기
  70. $total_record = sql_total("select count(*) from bbs where $search");
  71.  
  72.  
  73. //페이지표시
  74. $paging_str = paging($page, $page_row, $page_scale)

     

     

    반응형