페이징처리 오류 확인좀요!

페이징처리 오류 확인좀요!

QA

페이징처리 오류 확인좀요!

본문

 

<?php

/* 페이징 시작 */

//페이지 get 변수가 있다면 받아오고, 없다면 1페이지를 보여준다.

if(isset($_GET['page'])) {

$page = $_GET['page'];

} else {

$page = 1;

}

$sql = 'select count(*) as cnt from g5_write_sub03_01 order by b_no desc';

$result = sql_query($sql);

$row = sql_fetch_array($result);

$allPost = $row['cnt']; //전체 게시글의 수

$onePage = 15; // 한 페이지에 보여줄 게시글의 수.

$allPage = ceil($allPost / $onePage); //전체 페이지의 수

if($page < 1 && $page > $allPage) {

?>

<script>

alert("존재하지 않는 페이지입니다.");

history.back();

</script>

<?php

exit;

}

$oneSection = 10; //한번에 보여줄 총 페이지 개수(1 ~ 10, 11 ~ 20 ...)

$currentSection = ceil($page / $oneSection); //현재 섹션

$allSection = ceil($allPage / $oneSection); //전체 섹션의 수

$firstPage = ($currentSection * $oneSection) - ($oneSection - 1); //현재 섹션의 처음 페이지

if($currentSection == $allSection) {

$lastPage = $allPage; //현재 섹션이 마지막 섹션이라면 $allPage가 마지막 페이지가 된다.

} else {

$lastPage = $currentSection * $oneSection; //현재 섹션의 마지막 페이지

}

$prevPage = (($currentSection - 1) * $oneSection); //이전 페이지, 11~20일 때 이전을 누르면 10 페이지로 이동.

$nextPage = (($currentSection + 1) * $oneSection) - ($oneSection - 1); //다음 페이지, 11~20일 때 다음을 누르면 21 페이지로 이동.

$paging = '<ul>'; // 페이징을 저장할 변수

//첫 페이지가 아니라면 처음 버튼을 생성

if($page != 1) { 

$paging .= '<li class="page page_start"><a href="./afterservice_list.php?page=1">처음</a></li>';

}

//첫 섹션이 아니라면 이전 버튼을 생성

if($currentSection != 1) { 

$paging .= '<li class="page page_prev"><a href="./afterservice_list.php?page=' . $prevPage . '">이전</a></li>';

}

for($i = $firstPage; $i <= $lastPage; $i++) {

if($i == $page) {

$paging .= '<li class="page current">' . $i . '</li>';

} else {

$paging .= '<li class="page"><a href="./afterservice_list.php?page=' . $i . '">' . $i . '</a></li>';

}

}

//마지막 섹션이 아니라면 다음 버튼을 생성

if($currentSection != $allSection) { 

$paging .= '<li class="page page_next"><a href="./afterservice_list.php?page=' . $nextPage . '">다음</a></li>';

}

//마지막 페이지가 아니라면 끝 버튼을 생성

if($page != $allPage) { 

$paging .= '<li class="page page_end"><a href="./afterservice_list.php?page=' . $allPage . '">끝</a></li>';

}

$paging .= '</ul>';

/* 페이징 끝 */

$currentLimit = ($onePage * $page) - $onePage; //몇 번째의 글부터 가져오는지

$sqlLimit = ' limit ' . $currentLimit . ', ' . $onePage; //limit sql 구문

$sql = 'select * from g5_write_sub03_01 order by b_no desc' . $sqlLimit; //원하는 개수만큼 가져온다. (0번째부터 20번째까지

$result = sql_query($sql);

?>

 

현재 등록된 글은 3개뿐이라 설정대로라면 페이지가 1만 나와야하는데

 

페이지가 1 2 3 4 ... 9 10 까지 다 나와버립니다.

 

어느부분에서 고쳐줘야할까요.

 

p.s : allPost를 echo로 출력해봤더니 등록되어있는 글의 숫자가 빈값으로 나오네요.. 

 

이부분해결이 가능할까요

이 질문에 댓글 쓰기 :

답변 1

$sql = 'select count(*) as cnt from g5_write_sub03_01 order by b_no desc'; 

ex) $sql = 'select count(*) as cnt from g5_write_sub03_01 order by wr_datetime desc'; 

답변을 작성하시기 전에 로그인 해주세요.
전체 123,797 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT