CI 묻고 답하기

제목 페이지네이션 구현할려고 하는데요
글쓴이 과학나라 작성시각 2013/09/10 18:29:02
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 16699   RSS
 Controller부분

public function bbslist()
{
 // 모델 - 호출
 $this->load->model('simplebbsmodel');
 
 // 모델 - 쿼리
 $data['result'] = $this->simplebbsmodel->get_list();  //리스트 가져오기
 
 $this->load->library('pagination');
 
         $config['base_url'] = 'http://devtest.domain21.org/welcome/bbslist';
         $config['total_rows'] = 20; 
         $config['per_page'] = 10; 
 
         $this->pagination->initialize($config); 
    
          $data['paging'] = $this->pagination->create_links(); 
  $this->load->view('welcome_message',$data);
  $page_view = 5; // 한 페이지에 보여줄 레코드 수 
}

View부분
  --------------------------생략--------------------------
 <table width="600">
       <tr height="30">
        
    <td align="center"><?php echo $paging ?></td>
    <td align="right">   
           <input class=clButtonIcon name=formbutton1 type="button" value="글 등록하기"                            onclick="location.href='/welcome/write';">
        </td>
      </tr>
     </table>


=============================================================


일단 list 화면을 보면 페이지는 뜹니다만..

문제는 제가 DB에 입력했던 게시판 글하고 서로 연동이 안됩니다.

1페이지에 10개의 게시글만 보여야 하는데 전체 다 보여지고  

총 20개의 게시글이 적혀져 있는데  1페이지당 10개의 게시판만 보여지게 했으니깐

총 2페이지는 나오는데 1페이지,2페이지 모두 20개의 게시글이 전체 보여집니다. 

서로 연동이 안되는거 같은데 문제점 부탁드립니다.
 
  
 다음글 ajax 세션 (5)
 이전글 연동 마지막 질문 글입니다. (5)

댓글

/ 2013/09/10 18:48:04 / 추천 0
  $data['result'] = $this->simplebbsmodel->get_list();  //리스트 가져오기


이부분에서 limit를 걸어주는 내용이 get_list에 포함되어 있나요?;

실제 디비에서 가져오는 쿼리 부분이 문제가 될 것 같은데요?
/ 2013/09/10 18:49:59 / 추천 0
 그리고

         $config['total_rows'] = 20; 
이부분은 실제 디비에서 글이 몇개있는지 구해온 이후에 해당 값을 지정해줘야 할 것 같은데

직접 20개로 작성을 해두셨네요

이부분도 다시 살펴보셔야 할 듯..?;
수야디벨 / 2013/09/11 11:06:52 / 추천 0
 저도 이거 처음 접했을때 과학님과 같은 오류를 범했었어요.ㅎ

그래서 포럼검색을 했는데 정확히는 기억 안나지만 한분의 답변중에서 이런식의 말이 있었습니다.

'페이지 네이션은 사용자 편의를 도와주는 기능일 뿐이지, 페이지를 저절로 잡아주는 만능은 아니라고..'

즉, 페이지 네이션은 URL의 마지막 세그먼트에 페이지를 넣어주는 역할만 해줍니다.

저절로 DB의 데이터를 짤라 준다거나 하지 않아요 .

이런 말에 근거해서 조금만 생각해보면 키님의 답변과 일맥상통합니다.

우선 페이지 네이션 기능으로 인해서 세그먼트에 페이지가 붙을 테니 ,

그 페이지 세그먼트를 받으시구요 

 $data['result'] = $this->simplebbsmodel->get_list();   에 그 세그먼트를 이용해 리미트를 걸어줘야 합니다.

그리고  $config['total_rows'] = 20; 는 게시물의 총 량을 말하는건데 ,

이 역시 자신이 뽑아내고자 하는 db의 카운터를 제대로 입력해줘야합니다.



즉, 요컨대 페이지 네이션은 저절로 페이징을 잡아주는 만능 함수가 아니다.

단순히 사용자 편의를 제공해주기 위할뿐이다.  라는겁니다 ~


그리고 조금 더 나아가서 파보면,

메뉴얼에도 나와있지만 페이지 네이션에도 클래스 추가나, 태그 설정등을 

손쉽게 할 수 있기 때문에 커스터마이징도 엄청 간단하답니다 ~



변종원(웅파) / 2013/09/11 11:14:27 / 추천 0
공개되어 있는 게시판 소스들 한번 열어보시면 금방 해결할 수 있는 문제입니다.

다른 사람이 만든 소스를 자주 보는 습관을 가지면 좋습니다.