Chap. 13
이어서 목록 보여주기 위한 기능을 구현해 봅시다.
http://mydomain.com/bbs/list.php 로 접근하면 글 목록을 보여줘야겠군요.
한번에 다 못 보여주면 페이지를 지정해줘야겠지요?
GET 방식으로 아래와 같이 페이지를 지정할 수 있도록 합시다.
http://mydomain.com/bbs/list.php?page=1
아래코드로 list.php 를 시작합시다.
<?php require_once $_SERVER['DOCUMENT_ROOT'].'/preset.php'; include $_SERVER['DOCUMENT_ROOT'].'/header.php'; ?> 목록<br /> <?php include $_SERVER['DOCUMENT_ROOT'].'/footer.php'; ?> |
이렇게 시작합니다.
$q = "SELECT * FROM ap_bbs";
$result = $mysqli->query( $q);
$total_record = $result->num_rows;
우선 ap_bbs 에 글이 있는지 없는지 부터 확인을 합니다.
$total_record 가 0이 아니면, 테이블을 이용해서 목록을 표시하고 아니면, 글이 없다고 표시합니다.
php 변수를 체크해서 html로 화면에 뿌려야합니다. php와 html이 섞이게 됩니다.
이때 if 문을 효율적으로 사용할 수 있는 방법은 아래와 같습니다.
<?php if($total_record==0) :?>
글이 없습니다.
<?php else :?>
<?php endif?>
php 문법에서 if 뒤에 따라오는 { } 들을 위 방식으로 대체해서 손쉽게 html 코드와 섞어 쓸 수 있습니다.
목록<br /> 아래에 위 코드를 기록합시다.
else 안을 작성해 봅시다.
뭔가 표시를 할 것이 있으니까, 제대로 값을 가져와야겠지요.
글목록을 표시할 때, 한 페이지에 몇개를 표시할지, 현재 몇번째 페이지를 표시할지를 알아야겠지요?
if( isset($page) ) {
$now_page = $page;
}
else {
$now_page = 1;
}
한 페이지에 표시할 글 수를 5개로 설정합시다.
$record_per_page = 5;
한페이지에 표시할 글 수와 현재 페이지를 아니까, 쿼리에서 가져올 글의 위치와 갯수를 설정해 줍시다.
$start_record = $record_per_page*($now_page-1);
$record_to_get = $record_per_page;
if( $start_record+$record_to_get > $total_record) {
$record_to_get = $total_record - $start_record;
}
$q = "SELECT * FROM ap_bbs WHERE 1 ORDER BY doc_idx DESC LIMIT $start_record, $record_to_get";
$result = $mysqli->query($q);
테이블 안에 데이터들이 쭈욱~ 있는데, 원하는 페이지의 글들만 가져오려면, 몇번 데이터부터 몇개를 가져와야하는지를 계산하고, 쿼리에 적용을 한 내용입니다.
$result 안에 있는 데이터들을 하나씩 fetch 해서 화면에 뿌려주면 되겠습니다.
<table class="table">
<thead>
<th>글번호</th>
<th>제목</th>
<th>작성자 인덱스</th>
<th>등록일시</th>
</thead>
<?php while($data = $result->fetch_array()) :?>
<tr>
<td><?php echo $data['doc_idx']?></td>
<td><?php echo $data['subject']?></td>
<td><?php echo $data['member_idx']?></td>
<td><?php echo $data['reg_date']?></td>
</tr>
<?php endwhile ?>
</table>
table 태그에 클래스를 table 로 설정해줬습니다. 이 클래스는 부트스트랩에서 제공합니다.
이제 list.php에 접속해 봅시다.
위 처럼 보입니다.
위에 header 부분이 이전과 바뀌었죠?
'홈'은 index.php 로, '게시판 글쓰기'는 write.php로 가는 링크입니다. 뒤에 보이는 숫자는 로그인한 사용자의 member_idx 를 나타냅니다.
더 수정할 내용들은 다음 편에 계속하겠습니다.
이상!
'PHP 게시판 만들기' 카테고리의 다른 글
15. php로 기초적인 게시판 만들기 - 글 내용보기 (1) | 2012.12.17 |
---|---|
14. php로 기초적인 게시판 만들기 - 목록에 페이지 링크 추가하기 (3) | 2012.12.17 |
12. php로 기초적인 게시판 만들기 -write.php (8) | 2012.12.17 |
11. 트위터 부트스트랩 이용해서 레이아웃 만들기 (2) | 2012.12.14 |
10. 화면에 표시되는 내용 구분하기 (3) | 2012.12.13 |
댓글