질문좀 할께요 ~ 외부 xml 읽어와서 페이징 구현중입니다. 채택완료
외부 xml 읽어와서 페이징 구현중입니다.
아래의 코드에서 페이징이 제대로 되질 않습니다.... 어디가 문제일까요?
<? $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개
$arr 에 항상 전부 다 들어가있나요?
DB에서 전부다 긁어와서 $arr에 다 집어넣고
PHP에서 보여줄 때 해당 갯수 필터링 해서 보여주는 형태는 비효율 적입니다.
페이지네이션이 제대로 되면
애초에 DB에서 가져올때 페이지에서 필요한 갯수만큼만 가져오도록
적절히 Limit 를 걸게 되어있습니다.
그래서 $arr은 항상 bcount와 동일한 숫자만 들어있도록요.
get_pagination도 그런 알고리즘을 기반으로 만들어져있던것 같아서요.
페이지가 바뀜에 따라
1. 실제 DB 쿼리가 어떻게 들어가는지(LIMIT로 페이지네이션 하는지)
2. $arr에 어떤 값이 얼마나 들어있는지
등을 살펴 보심 좋을것 같습니다
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
외부 xml 이군요 그럼 작성하신대로 하면 크게 문제 없을것 같은데
페이징이 제대로 되지 않는다는 건 어떻게 동작한다는 설명일까요?
page변수가 잘 들어오는지
count 갯수가 잘 맞는지 확인해보면 어떠실까요?
page_str 를 설정하는 변수가 없는건 상관없는 부분인가요?
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
$response = file_get_contents($url);
$object = simplexml_load_string($response);
$resource = $object->resource;
로 불러서 처리하고있습니다~