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

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


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


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

답변 2개

채택된 답변
+20 포인트

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

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

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


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

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

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

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


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


페이지가 바뀜에 따라 

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

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

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

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

답변에 대한 댓글 1개

답글 달아주셔서 감사합니다~

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

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

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

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

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


page변수가 잘 들어오는지 

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


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

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

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

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

로그인
🐛 버그신고