페이징 소스입니다.
Copy
<?php // 간단 구현 페이징 function page_nav($total,$scale,$p_num,$page,$query) { global $PHP_SELF; $total_page = ceil($total/$scale); if (!$page) $page = 1; $page_list = ceil($page/$p_num)-1; // 페이지 리스트의 첫번째가 아닌 경우엔 [1]...[prev] 버튼을 생성한다. if ($page_list>0) { $navigation = "<a href='$PHP_SELF?page=1&$query'>[1]</a> ... "; $prev_page = ($page_list-1)*$p_num+1; $navigation .= "<a href='$PHP_SELF?page=$prev_page&query'>[prev]</a> "; } // 페이지 목록 가운데 부분 출력 $page_end=($page_list+1)*$p_num; if ($page_end>$total_page) $page_end=$total_page; for ($setpage=$page_list*$p_num+1;$setpage<=$page_end;$setpage++) { if ($setpage==$page) { $navigation .= "<b>[$setpage]</b> "; } else { $navigation .= "<a href='$PHP_SELF?page=$setpage&$query'>[$setpage]</a> "; } } // 페이지 목록 맨 끝이 $total_page 보다 작을 경우에만, [next]...[$total_page] 버튼을 생성한다. if ($page_end<$total_page) { $next_page = ($page_list+1)*$p_num+1; $navigation .= "<a href='$PHP_SELF?page=$next_page&$query'>[next]</a> "; $navigation .= "... <a href='$PHP_SELF?page=$total_page&$query'>[$total_page]</a>"; } return $navigation; }?> <?php $total_data=14513; $num_per_page=40; $page_per_list=10; $query="id=hobb"; $nav=page_nav($total_data,$num_per_page,$page_per_list,$page,$query); echo $nav; echo ("<form action=$PHP_SELF> 페이지 : <input type=text name=page size=4> <input type=submit value='이동'></form> ");?>
그리고 저 위 소스를 응용한 제 소스입니다. (밑 부분이 제 소스입니다.)
Copy
<?php $view_article = 1; if (!$page) $page = 1; $start = ($page-1)*$view_article; $sql = "select count(*) from {$g5['shop_table']}"; $result = sql_query($sql); $temp = sql_fetch_array($result); $total_article = $temp[0]; $sql = "select * from {$g5['shop_table']} order by mb_no desc limit $start, $view_article"; $result = sql_query($sql); $cnt = 0; for($i=0; $list=sql_fetch_array($result); $i++){
저렇게 해서 페이징 나오는거까진 됐는데
페이지가 1 2 3 4 5 6
이렇게 잘 나오고 눌르면 똑같이 맞아 떨어지고 값이 나오는데
페이지가 356개 까지 있습니다..ㅠㅠ
어떻게 응용해야할까요 도와주세요
게시글은 5개밖에 없는데 페이지가 356개 있씁니다,,
|
답변 1개
채택된 답변
+20 포인트
10년 전
페이지가 늘어가는건 지금 올리신 페이징 소스 부분에 문제가 있어서 그런게 아닐듯합니다.
그누보드나 영카트인경우 현재 등록된 건수를 count를 하지 않고.g5_board 란 테이블을 열어보시면
bo_count_write 필드에 등록된 건수를 기록 하고 있습니다.
이건 select count를 하여 구지 속도를 느리게 하지 않게 하기 위함으로 고안해 놓은 듯 생각됩니다.
따라서 페이지가 많이나오게 된다는 이야기는 bo_count_write 필드에 보시면 아마 5개 보다 더 많은 숫자로 셋팅되었을겁니다..
이부분은 5개 맞게 바꾸시면 아마 이 문제를 해결될듯합니다.
답변을 작성하려면 로그인이 필요합니다.