본문 바로가기
PHP 게시판 만들기

14. php로 기초적인 게시판 만들기 - 목록에 페이지 링크 추가하기

by 똑똑한 영장류 2012. 12. 17.


Chap 14.



리스트 화면의 아래 쪽에 각각의 페이지로 이동할 수 있는 링크를 만들어 보겠습니다.


페이지 표시하는 구간을 블럭이라고 이름하고, 현재 표시하고 있는 페이지를 포함하는 블럭 내의 페이지를 링크로 제공하도록 하겠습니다.


블럭은 10 개 단위로 끊겠습니다.

1페이지~10페이지가 블럭 1, 11페이지~20페이지가 블럭 2..이런 식입니다.


현재 3페이지를 표시하고 있으면, 아래와 같이 표시한다는 말입니다.


[1] [2] 3 [4] [5] [6] [7] [8] [9] [10] [다음]


현재 페이지가 속해 있는 블록 번호는 아래와 같이 구할 수 있습니다.


$page_per_block = 10;

$now_block = ceil($now_page / $page_per_block);



전체 게시물의 숫자와 페이지당 표시할 글의 수를 이용해서 전체 페이지 수를 구해낼 수 있습니다.


$total_page = ceil($total_record / $record_per_page);


전체 페이지수를 구했으니, 블럭 당 페이지 수를 이용해서 전체 블럭 수를 구할 수 있습니다.


$total_block = ceil($total_page / $page_per_block);


부트스트랩의 pagination 관련 CSS를 이용해서 아래와 같이 작성할 수 있습니다.


<div class="pagination">
    <ul>
<?php
$total_page = ceil($total_record / $record_per_page);
$total_block = ceil($total_page / $page_per_block);

if(1<$now_block ) {
  $pre_page = ($now_block-1)*$page_per_block;
  echo '<a href="http://'.$_SERVER['HTTP_HOST'].'/bbs/list.php?page='.$pre_page.'">이전</a>';

}

$start_page = ($now_block-1)*$page_per_block+1;
$end_page = $now_block*$page_per_block;
if($end_page>$total_page) {
  $end_page = $total_page;
}

?>
   
<?php for($i=$start_page;$i<=$end_page;$i++) :?>
    <li><a href="./list.php?id=<?php echo $id ?>&page=<?php echo $i; ?>"><?php echo $i; ?></a></li>
<?php endfor?>
</ul>
<?php
if($now_block < $total_block) {
  $post_page = ($now_block)*$page_per_block+1;
  echo '<a href="http://'.$_SERVER['HTTP_HOST'].'/bbs/list.php?page='.$post_page.'">다음</a>';
}

?>
</div><!-- .pagination --> 




아래쪽에 페이지 표시가 되었습니다.

2페이지를 눌러볼까요?






2페이지에 글이 하나 보이는군요.


글목록 표시가 잘 되는군요.


이제 제목을 클릭했을 때, 글 내용을 보여주는 기능을 추가해보겠습니다.


우선 list.php 에서 제목 표시 부분에 링크를 걸어줘야겠군요.

클릭하면, 글의 id를 가지고 가서 글내용을 가져와 뿌려주는 view.php가 실행되도록 해야겠습니다.


글목록을 뿌려주는 부분에 제목 부분이 아래와 같이 수정됩니다.


<td><a href="http://<?php echo $_SERVER['HTTP_HOST'];?>/bbs/view.php?doc_idx=<?php echo $data['doc_idx']; ?>" ><?php echo $data['subject']?></a></td>


list.php는 이정도로 하고, 이어서, view.php를 작성해 보겠습니다.


이상!













댓글