글 번호
게시판 글 번호 구하기
게시판 글 번호 구하기
게시판 페이징을 구현하고 나서 각 페이지에 글 번호를 주어야 하는데
여러 방법이 있을수도 있는데 나는 이렇게 했다.
우선 준비물은 3가지
※ buy는 제가 구매게시판을 만드느라 붙였습니다.
$page
//페이징 번호이다. 1페이지 2페이지 ...
$buyCnt
//쿼리를 이용해 row로 숫자를 구한다. ex)$buyCnt = mysql_num_rows($buyRs);
mysql_num_rows() 함수는 row갯수를 구해준다. row는 한 페이지에 몇 개의 글 목록을 보여주는지 결정해준다.
$buyTotalCount
//db에 있는 총 게시글 갯수이다. 구하는 방법은
$countSql = "select count(*) cnt from 게시판DB명;
$countRs = mysql_query($countSql);
$countData = mysql_fetch_array($countRs);
$buyTotalCount = $countData['cnt'];
이런식으로 구해주면 총 몇 개의 글이 있는지 숫자로 보여준다.
우선 나는 $buyCnt가 50이 나왔으니 한 페이지당 50개씩 글 목록을 불러온다.
먼저 완성소스이다.
//결과 출력 <? for($i=0;$i < $buyCnt;$i++){ $buy = mysql_fetch_array($buyRs); if($buyCnt != 50) //글 목록이 50개가 아니라면 $buyCnt = 50; //50개라 가정하고 계산 $buyNum =$buyTotalCount-($buyCnt*($page-1)); $Num = $buyNum - $i; if($Num <= 0){ //글 번호가 0보다 같거나 작으면 //아무것도 실행하지 않음으로써 열을 다 지운다. }else{?> //0보다 큰 경우면 <tr> <td><?=$Num?></td> //글 번호 출력 </tr> <?} }?>
설명을 하자면 500개의 글 들이 있다고 가정할때 1페이지의 첫번째 게시글 번호는 500번이어야 한다. 이걸 계산하기 위해
$buyNum =$buyTotalCount-($buyCnt*($page-1));
2000번이 나온다. 그럼 이걸 가지고 하나씩 감소시키면 저절로 아래 글들의 번호가 매겨진다.
$Num = $buyNum - $i;
if($buyCnt != 50) //글 목록이 50개가 아니라면 $buyCnt = 50; //50개라 가정하고 계산 |
이렇게 아무 값도 없는데 음수로 테이블 출력한다.
이를 방지하고자 조건을 또 걸어준다.
if($Num <= 0){ //글 번호가 0보다 같거나 작으면 //아무것도 실행하지 않음으로써 열을 다 지운다. }else{?> //0보다 큰 경우면 <tr> <td><?=$Num?></td> //글 번호 출력 <td><?=$Date?></td> //글 작성날짜 </tr> <?} |
'지식메모 > PHP' 카테고리의 다른 글
php 문자열 공백제거하기 (1) | 2013.11.13 |
---|---|
문자열 분리하기 다루기 (0) | 2013.10.08 |
게시판 페이징 구현하기 (44) | 2013.08.12 |
날짜 출력 함수 사용하기 (0) | 2013.08.05 |
문자열 잘라쓰기 (0) | 2013.08.05 |