채택완료

이 페이징 소스는 어떻게 활용해야 하나요?

페이징 소스입니다.

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 포인트

페이지가 늘어가는건 지금 올리신 페이징 소스 부분에 문제가 있어서 그런게 아닐듯합니다.

 

그누보드나 영카트인경우 현재 등록된 건수를 count를 하지 않고.g5_board 란 테이블을 열어보시면

bo_count_write 필드에 등록된 건수를 기록 하고 있습니다.

 

이건 select count를 하여 구지 속도를 느리게 하지 않게 하기 위함으로 고안해 놓은 듯 생각됩니다.

따라서 페이지가 많이나오게 된다는 이야기는 bo_count_write 필드에 보시면 아마 5개 보다 더 많은 숫자로 셋팅되었을겁니다..

 

이부분은 5개 맞게 바꾸시면 아마 이 문제를 해결될듯합니다.

 

답변을 작성하려면 로그인이 필요합니다.