mysql 으로 가져온 데이타가 많을때 페이지 버튼 만들기

프로그래밍/PHP|2015. 1. 27. 11:43
반응형

php 를 잘하지 못하여 아래와 같이 코딩하였습니다.

초보분도 보시고 참고용으로만 활용하세요.


<table width="1100" height="50" border="0" cellspacing="0" cellpadding="0">

  <tr>

    <td align="center" valign="middle">


<?

if(!$page) { $page="1"; }    // 페이지 값이 없을경우 기본 1페이지로 설정


$size="20";    // 한 페이지에 출력될 레코드수


$query = "select count(*) as count from sysdocu_users";    // 총갯수 구하기

$result = mysql_query($query,$connect);

if ($result) {

while ($newArray = mysql_fetch_array($result,MYSQL_ASSOC)) {

      $count = $newArray['count'];

}

}


$total_page=$count/$size;    // 총 페이지 구하기

$total_page=ceil($total_page);    // 레코드가 1개라도 더 남았을 경우 페이지가 새로 생기기 때문에 소수점 이하는 올립니다.

$page_chai=$total_page-$page; // 아레 페이지 번호 정렬시 사용


$page_view=($page-1)*$size;    // 2페이지 클릭시 (2-1)*20 이 되므로 20 이라는 값이 입력 / 기본 1page 일 경우의 값은 0 이 됩니다.


$query="select name from sysdocu_users order by name limit $page_view, $size";    // $page_view 부터 $size 개 출력

$result = mysql_query($query,$connect);

if ($result) {

while ($newArray = mysql_fetch_array($result,MYSQL_ASSOC)) {

      $name = $newArray['name'];

      echo "$name<br>";

}

}


echo "<br>";


// 하단 페이지 번호를 가운데로 정렬하기 위해서 처음과 끝을 적용

if ($page<6) {    // 선택 페이지가 5 이하일 경우 1부터 고정

$start=1;

$end=10;

}

elseif ($page_chai<5) {    // 선택 페이지가 뒤로 5 페이지밖에 남지 않았을 경우 마지막 페이지 고정

$start=$total_page-10;

$end=$total_page;

}

else {

$start=$page-5;

$end=$page+5;

}



if ($total_page<10) {    // 페이지가 10개 이하일 경우 버튼 갯수도 페이지만큼 줄입니다.

$end="$total_page";

}


$move=$page-1;    // 화살표를 클릭하면 현재 페이지에서 -1 페이지로 이동. 5 페이지 미만의 위치에서는 버튼 숨김

if ($page=="1") { } else { echo "<a href='$PHP_SELP?page=$move'>◀</a>&nbsp;"; }


for($i=$start;$i<=$end;$i++){

echo "<a href='$PHP_SELP?page=$i'>";    // 선택한 페이지는 굵게

if ($page==$i) { echo"<b>[$i]</b>"; }

else { echo "[$i]"; }

echo "</a>&nbsp;";

}


$move=$page+1;    // 화살표를 클릭하면 현재 페이지에서 +1 페이지로 이동. 5 페이지 남은 위치에서는 버튼 숨김

if ($page=="$total_page") { } else { echo "<a href='$PHP_SELP?page=$move'>▶</a>"; }

?>


    </td>

  </tr>

</table> 


반응형

댓글()