인터넷정보

간단한 페이징 소스

알 수 없는 사용자 2007. 10. 11. 22:11

if($_GET["page"]) $page = $_GET["page"]; // 현재 페이지 구하기
else $page = 1;

$total = 980; // 총 게시물 수
$pg_scale = 10; // 한페이지에 출력 될 목록 수
$pg_group = 20; // 보여질 페이지 수 ([1][2][3]이런거)
$pg_select = ($page - 1) * $pg_scale;
$pg_total = ceil($total / $pg_scale); // 총 페이지 수 구하기
$pg_half = floor($pg_group/2);

echo "<a href='?page=1'>처음</a> "; // 첫 페이지
$pg_half3 = $page>($pg_total-5) ? 10-($pg_total-$page) : $pg_half;
for($i=0;$i<$pg_half3;$i++) {
    $j = $page - $pg_half3 + $i;
    if($j > 0) {
        echo " <a href='?page=$j'>$j</a> "; // 현재 페이지의 앞페이지들
    }
}
echo " <b>$page</b> "; // 현재 페이지
$pg_half2 = $page<5 ? 10-$page : $pg_half;
for($i=0;$i<$pg_half2;$i++) {
    $j = $page + $i + 1;
    if($j <= $pg_total) {
        echo " <a href='?page=$j'>$j</a> "; // 현재 페이지의 뒷페이지들
    }
}
echo " <a href='?page=$pg_total'>끝</a>"; // 끝 페이지

반응형