테스트 사이트 - 개발 중인 베타 버전입니다

질문좀 할께요 ~ 외부 xml 읽어와서 페이징 구현중입니다. 채택완료

핸아빠 8년 전 조회 2,456

외부 xml 읽어와서 페이징 구현중입니다.

아래의 코드에서 페이징이 제대로 되질 않습니다.... 어디가 문제일까요? 

</p><p><?</p><p>    $total = count($arr);</p><p>    $page = $page ? $page : 1;</p><p>    $bcount = 20; // 한화면에 보여줄 목록 갯수</p><p>    $totalpage=ceil($total/$bcount);</p><p>?></p><p> </p><p><table border="1"></p><p>    <thead></p><p>    <tr></p><p>        <th nowrap>No</th></p><p>        <th nowrap>제목</th></p><p>        <th nowrap>내용</th></p><p>    </tr></p><p> </p><p>    </thead></p><p>    <tbody></p><p><?</p><p>$_bcount = $total; // 전체적인 카운트 변수(전체 순번 및 역순 관련)</p><p>$_page = 1; // 전체적인 카운트 변수 관련(전체 순번 및 역순 관련)</p><p>$k = 0; // 해당 페이지 카운트 변수</p><p>for($i=($page-1)*$bcount;$i<=($page-1)*$bcount+$bcount-1;$i++) :</p><p> </p><p>    if(($total-$i) > 0) :  // 테이블이 존재 할때  있을때 </p><p>        $f_table_tot++;</p><p>        $sno =($total -($total -($i +($_bcount*($_page - 1))))+1);// 전체 순서적인 번호</p><p>        $eno =($total -($i +($_bcount*($_page - 1)))); // 전체 역순 번호</p><p>?></p><p>    <tr></p><p>        <td><?=$sno;?></td></p><p>        <td><?=$arr['subject'];?></td></p><p>        <td><?=$arr['content'];?></td></p><p>    </tr></p><p><?        </p><p>            $k++; // 해당 페이지 카운트 변수</p><p>        endif; // if(($total-$i) > 0) :  // 테이블이 존재 할때  있을때</p><p>    endfor;</p><p>?></p><p>    </tbody></p><p></table></p><p> </p><p><?=get_paging($pagecount, $page, $totalpage, $_SERVER['PHP_SELF']."?".$page_str); ?></p><p>

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

답변 2개

채택된 답변
+20 포인트
8년 전

$arr 에 항상 전부 다 들어가있나요?

DB에서 전부다 긁어와서 $arr에 다 집어넣고 

PHP에서 보여줄 때 해당 갯수 필터링 해서 보여주는 형태는 비효율 적입니다.

페이지네이션이 제대로 되면 

애초에 DB에서 가져올때 페이지에서 필요한 갯수만큼 가져오도록

적절히 Limit 를 걸게 되어있습니다. 

그래서 $arr은 항상 bcount와 동일한 숫자만 들어있도록요. 

get_pagination도 그런 알고리즘을 기반으로 만들어져있던것 같아서요. 

페이지가 바뀜에 따라 

1. 실제 DB 쿼리가 어떻게 들어가는지(LIMIT로 페이지네이션 하는지)

2. $arr에 어떤 값이 얼마나 들어있는지

등을 살펴 보심 좋을것 같습니다 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

핸아빠
8년 전
답글 달아주셔서 감사합니다~

$response = file_get_contents($url);
$object = simplexml_load_string($response);
$resource = $object->resource;

로 불러서 처리하고있습니다~

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

8년 전

외부 xml 이군요 그럼 작성하신대로 하면 크게 문제 없을것 같은데 

페이징이 제대로 되지 않는다는 건 어떻게 동작한다는 설명일까요? 

page변수가 잘 들어오는지 

count 갯수가 잘 맞는지 확인해보면 어떠실까요?

page_str 를 설정하는 변수가 없는건 상관없는 부분인가요? 

로그인 후 평가할 수 있습니다

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

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

로그인