PHP

php 페이징 함수

꾸보이 2015. 2. 18. 14:15
728x90
<?php
/*
    게시판 페이징 모듈
    작성자 : 송 웅

    넘겨 받을 데이터
    $total_col          // 총 게시글 수
    $now_page           // 현재 페이지 번호
    $page_col_num       // 한 페이지 게시글 수
    $page_block_num     // 한 페이지 블럭 수
*/
function paging($total_col, $now_page, $page_col_num, $page_block_num) {
    $total=$total_col;                  // 총 컬럼 수
    $page=$now_page;                    // 현재 페이지
    $page_num=$page_col_num;            // 한 페이지 컬럼 수
    $block_num=$page_block_num;         // 한 페이지 블럭 수
    
    $limit_start=$page_num * $page - $page_num// limit 시작 위치
    
    $total_page=ceil($total/$page_num);             // 총 페이지
    $total_black=ceil($total_page/$block_num);      // 총 블럭
    
    $now_block=ceil($page/$block_num);                         // 현재 페이지의 블럭
    $start_page=(($now_block*$block_num)-($block_num-1));      // 가져올 페이지의 시작번호
    $last_page=($now_block*$block_num);                        // 가져올 마지막 페이지 번호
    
    $prev_page=($now_block*$block_num)-$block_num;             // 이전 블럭 이동시 첫 페이지
    $next_page=($now_block*$block_num)+1;                      // 다음 블럭 이동시 첫 페이지
    
    
    
    // 이전 페이지
    if($now_block > 1){
        echo "<a href=$_SERVER[PHP_SELF]?page=$prev_page> [◀] </a>";
    }
    // echo "이전 페이지 : $prev_page";
    
    // 페이지 리스트
    
    if($last_page < $total_page) {
        $for_end=$last_page;
    }
    else{
        $for_end=$total_page;
    }
    for($i=$start_page; $i<=$for_end; $i++){
        echo "<a href=$_SERVER[PHP_SELF]?page=$i> $i </a>";
    }
    
    // 다음 페이지
    if($now_block < $total_black){
    echo "<a href=$_SERVER[PHP_SELF]?page=$next_page> [▶] </a>";
    }
    // echo "다음 페이지 : $next_page";
}
?>

 

728x90