CI 묻고 답하기

제목 pagination 질문입니다.
글쓴이 cynics 작성시각 2012/08/28 19:25:07
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 15538   RSS
먼저 시간내주셔서 답변해주시는 분들께 감사드립니다..

DB에서 회원목록을 가져와서 페이지당 10줄 정도씩 출력하는 페이지네이션을 하고 싶은데

자꾸 안되네요..몇시간째 노력하는데도 안되어서 염치없이 질문을 올려봅니다.

메뉴얼에 있는것처럼 컨트롤러 함수 내용이 아래와 같구요.. 디비에서 현재 디비에 있는 목록을 전부가져와서 result에 넣었습니다.


$this->load->model('member_model','',TRUE);
$data = "";
$data['result']=$this->member_model->admin_db();
$this->load->library('pagination');
$config['total_rows'] = 200;
$config['per_page'] = 10;
$config['uri_segment'] = 4;
            $config['base_url'] = 'member/admin';
   
 
        $this->pagination->initialize($config); 
        $data['pagination'] = $this->pagination->create_links();
$this->load->view('admin',$data); 


그리고 뷰에서는 받아온 result의 내용을 뿌려주는데 페이지당 10개가 아니라 전부다 나오네요

혹시 컨트롤러에서 10개씩 찎어주고 뷰페이지에서 페이지네이션 링크부분에서 클릭을 하면 다시 컨트롤러로 가서 그 다음페이지를 출력하고 그런 방식인건가요..

그렇다면 페이지네이션 클래스에서 per_page 를 설정하는게 무슨 의미인가요.그냥 제가 10개씩 가져오고 10개씩 출력하고 그 링크를 거는거면.. 페이지네이션 클래스를 이용해서 얻는 이로움이 무엇인지 잘 모르겠네요.

제가 이해를 잘 못하고 있는거겠죠..ㅠㅠ
 다음글 Active Record Class 질문드립니다. (1)
 이전글 $rowcount에서 에러가 납니다 (9)

댓글

변종원(웅파) / 2012/08/28 21:15:18 / 추천 0
admin_db 함수에 limit 수를 넘겨서 mysql limit 구문을 사용해야 합니다. 포럼소스나 마냐님 소스 보시고 참고하세요
kaido / 2012/08/29 08:40:27 / 추천 0
 저도 처음에는 이해가 잘 안갔습니다.

페이지네이션은 특별히 자동으로 페이지네이션을 만들어 주는게 아닙니다.

ui 를 만들어 주는 것이죠.

도메인/컨트롤러/메소드/페이지넘버
식으로 되어있다면

페이지넘버에 10이 들어가면
단순히

select * from table 
limit $pageno, 20;

이렇게 선언 해서 숫자값만 받는 상태로 10 이란 숫자를 넣으면 어떻게 되나요?

10번째 부터 최대 20개까지만 출력 되겠지요?

페이지 네이션의  $config['per_page'] = 10;  이란 숫자는

<1234>  밑에 번호 1을 클릭하면 0  번이고
2를 클릭하면 10 이란 숫자를 url에 넣어주는 역활 뿐입니다.

그렇다는것은 최대 레코드 값을 알아야 하는 모델 메소드가 한개 더 필요하겠지요?

이제 조금만 더 생각 하시면 페이지네이션은 이게 전부 입니다.
cynics / 2012/08/30 02:26:57 / 추천 0
답변 정말 감사합니다..이제 좀 알겠네요 ..

정말 감사합니다^^