<?php
$currentPage = $_REQUEST["page"];
if(!$currentPage) $currentPage = 1;
$totalRecord = 151; // 전체 레코드수
$recordPerPage = 10; // 페이지 당 뿌릴 레코드 수
$pagePerBlock = 10; // [1] ~ [10] 까지 한번에 10개씩
function handlePage($totalRecord,$recordPerPage,$pagePerBlock,$currentPage){ // 전체레코드, 페이지당 레코드수(10) , 블럭당페이지수(10), 현재페이지
$totalNumOfPage = ceil($totalRecord/$recordPerPage); //16page
$totalNumOfBlock = ceil($totalNumOfPage/$pagePerBlock); //2block
$currentBlock = ceil($currentPage/$pagePerBlock); // 1page
$startPage = ($currentBlock-1)*$pagePerBlock+1; // 1page
$endPage = $startPage+$pagePerBlock -1; // 10page
if($endPage > $totalNumOfPage) $endPage = $totalNumOfPage;
//NEXT,PREV 존재 여부
$isNext = false;
$isPrev = false;
if($currentBlock < $totalNumOfBlock) $isNext = true;
if($currentBlock > 1) $isPrev = true;
if($totalNumOfBlock == 1){
$isNext = false;
$isPrev = false;
}
if($isPrev){
$goPrevPage = $startPage-$pagePerBlock; // 11page
echo "<a href=\"$PHP_SELF?page=$goPrevPage\">[PREV]</a>";
}
for($i=$startPage;$i<=$endPage;$i++){
echo "<a href=\"$PHP_SELF?page=$i\">[".$i."]</a>";
}
if($isNext){
$goNextPage = $startPage+$pagePerBlock; // 11page
echo "<a href=\"$PHP_SELF?page=$goNextPage\">[NEXT]</a>";
}
}
handlePage($totalRecord,$recordPerPage,$pagePerBlock,$currentPage);
?>
$currentPage = $_REQUEST["page"];
if(!$currentPage) $currentPage = 1;
$totalRecord = 151; // 전체 레코드수
$recordPerPage = 10; // 페이지 당 뿌릴 레코드 수
$pagePerBlock = 10; // [1] ~ [10] 까지 한번에 10개씩
function handlePage($totalRecord,$recordPerPage,$pagePerBlock,$currentPage){ // 전체레코드, 페이지당 레코드수(10) , 블럭당페이지수(10), 현재페이지
$totalNumOfPage = ceil($totalRecord/$recordPerPage); //16page
$totalNumOfBlock = ceil($totalNumOfPage/$pagePerBlock); //2block
$currentBlock = ceil($currentPage/$pagePerBlock); // 1page
$startPage = ($currentBlock-1)*$pagePerBlock+1; // 1page
$endPage = $startPage+$pagePerBlock -1; // 10page
if($endPage > $totalNumOfPage) $endPage = $totalNumOfPage;
//NEXT,PREV 존재 여부
$isNext = false;
$isPrev = false;
if($currentBlock < $totalNumOfBlock) $isNext = true;
if($currentBlock > 1) $isPrev = true;
if($totalNumOfBlock == 1){
$isNext = false;
$isPrev = false;
}
if($isPrev){
$goPrevPage = $startPage-$pagePerBlock; // 11page
echo "<a href=\"$PHP_SELF?page=$goPrevPage\">[PREV]</a>";
}
for($i=$startPage;$i<=$endPage;$i++){
echo "<a href=\"$PHP_SELF?page=$i\">[".$i."]</a>";
}
if($isNext){
$goNextPage = $startPage+$pagePerBlock; // 11page
echo "<a href=\"$PHP_SELF?page=$goNextPage\">[NEXT]</a>";
}
}
handlePage($totalRecord,$recordPerPage,$pagePerBlock,$currentPage);
?>
출처[펌] http://phpleader.net/
'language > PHP' 카테고리의 다른 글
[펌] PHP 코드를 최적화하는 40가지 팁 (번역) (0) | 2008.02.12 |
---|