CI 묻고 답하기

제목 전에 올렸던 페이징질문입니다 ㅠㅠ
글쓴이 ci_chobo 작성시각 2012/11/06 19:57:30
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 15839   RSS
되는줄알고있었는데 오늘 해보니깐 또 안되서 몇시간 동안 머리싸맸네요

$page   = $this->uri->segment(4) ? $this->uri->segment(4) : 1;
$per_page = 2;

$startNum = ($offset - 1) * $per_page;
$endNum   = $offset * $per_page;

이렇게 주고 잡았을 때 첫번째 페이지까지는 잘나오는데 두번째 페이지에서 데이터가3개가나오고 3번째 페이지에 데이터가 1개가나옵니다

$startNum에 +1을 추가해주었을 때는
첫번째 페이지에 2개가나오고 2번째 페이지에 마지막에(3번째페이지)나와야될 데이터2개가 나오고 3번째 페이지는 비어있습니다

startNum과 endNum 설정을 잘못한거같은데 계속 고쳐봐도 원하는 답이 안나와서 질문드립니다 ㅠㅠ
 다음글 호출방법 문의입니다. (6)
 이전글 이메일 전송시 질문입니다 (5)

댓글

한대승(불의회상) / 2012/11/06 20:18:10 / 추천 0
샘플 소스를 참고 하세요.

http://sample.cikorea.net/sample_view/class/pagination
ci_chobo / 2012/11/06 20:33:10 / 추천 0

불의회상님 답변감사합니다
그런데 dB가 오라클이라 ㅠㅠ...rownum을써야하더라구요ㅠㅠ

한대승(불의회상) / 2012/11/06 20:57:23 / 추천 0
오라클에서도 $this->db->limit() 을 사용하여 페이징 하시면 될거 같은데... ㅡㅡ;;
ci_chobo / 2012/11/07 09:27:56 / 추천 0
문제점이 뭔지 알았습니다.
풀쿼리로 현재 사용중인데요. ROWNUM 문제라기보다 페이지가 넘어가는 쪽이 문제였습니다

$offset으로 받은 값이 첫번째 페이지에서는 1, 두번째 페이지에서는 2, 3번째 페이지에서는 3으로 넘어가야하는데 3번째 페이지에서 4로 넘어가버리네요;;

$offset   = $this->uri->segment(4) ? $this->uri->segment(4) : 1;

offset을 설정해주는 쪽은 저쪽 밖에 없는데 .. (같은 모델입니다) . 그 상황에서 왜 저렇게 나오는지 모르겠네요;;

startNum 과 endNum 구하는 방법이 잘못된건지..