페이징

인터넷관련 2008. 2. 16. 12:58
<?
$PG_this = $_REQUEST[PG_this];

$PG_line = 201;// 전체 라인 수(=전체 멤버 수)
$PG_unit = 10;                // 페이지당 라인수 : 12줄=1페이지
$PG_grup = 10;                // 한 화면당 나타날 페이지 그룹 갯수 : 10개

$PG_tots = ceil($PG_line / $PG_unit); // 전체 페이지 수

$PG_this = $PG_this ? $PG_this:($PG_tots ? 1:0); // 현재 열린 페이지 또는 0(무효) 계산

$PG_strt = $PG_this ? (floor($PG_this/$PG_grup)*$PG_grup+1):0; // 페이지 그룹 시작페이지 수 계산
if($PG_strt >$PG_this) { $PG_strt -= $PG_grup; }

$PG_fnsh = $PG_strt ? ($PG_strt+$PG_grup-1):0; // 페이지 그룹 최종페이지 수 계산
if($PG_fnsh >=$PG_tots) { $PG_fnsh = $PG_tots; }

$PG_frst = ($PG_strt > $PG_grup*2) ? 1:0; // 첫페이지 그룹 1 또는 0(무효) 계산

$PG_prev = ($PG_strt > $PG_grup) ? ($PG_strt -1):0; // 이전페이지 그룹 계산

$PG_next = (($PG_strt+$PG_grup) <= $PG_tots) ? ($PG_fnsh+1):0; // 다음 페이지 그룹 계산

$PG_last = (($PG_strt+$PG_grup*2) <= $PG_tots) ? ($PG_tots):0; // 마지막 페이지 그룹 계산

// 처음 및 이전 페이지 링크 출력
$PG_link .= $PG_frst ? " <a href=".$_SERVER[PHP_SELF]."?PG_this=$PG_frst>처음</a>":"";
$PG_link .= $PG_prev ? " <a href=".$_SERVER[PHP_SELF]."?PG_this=$PG_prev>이전</a>":"";

// 현재 페이지 그룹 리스트 출력
for($i=$PG_strt; $i<=$PG_fnsh; $i++) {
  if($PG_this == $i) { $PG_link .= " <b>$i</b>"; }
  else { $PG_link .= " <a href=".$_SERVER[PHP_SELF]."?PG_this=$i>$i</a>"; }
}

// 다음 및 마지막 페이지 링크 출력
$PG_link .= $PG_next ? " <a href=".$_SERVER[PHP_SELF]."?PG_this=$PG_next>다음</a>":"";
$PG_link .= $PG_last ? " <a href=".$_SERVER[PHP_SELF]."?PG_this=$PG_last>마지막</a>":"";
// 디비에서 현재 페이지 내용 출력하기

echo $PG_link;
?>
,