CI 묻고 답하기

제목 페이징 관련 오류
글쓴이 p@ssword 작성시각 2014/01/22 10:15:01
댓글 : 12 추천 : 0 스크랩 : 0 조회수 : 18837   RSS
오탈자도 확인하고 소스부분 틀린거 없나 책보고 여러번 봤는데 틀린곳이 없네요

소스 입니다.

<?php
 
class Board extends CI_Controller{
    
    function __construct()
    {
        parent::__construct();
        $this->load->database();
        $this->load->model('board_m');
    }
    
    public function index()
    {
        $this->lists();
    }
    
    public function lists()
    {
        //페이지네이션 라이브러리 로딩추가
        
        $this->load->library('pagination');
        
        //페이지네이션 설정
        
        $config['base_url'] = '/bbs/board/lists/ci_board/'; //페이징 주소
        $config['total_rows'] = $this->board_m->get_list($this->uri->segment(3), 'count');
        
        //게시물의 전체 개수
        
        $config['per_page'] = 5; //한 페이지에 표시할 게시물 수
        $config['uri_segment'] = 5; //페이지 번호가 위치한 세그먼트
        
        //페이지네이션 초기화
        
        $this->pagination->initialize($config);
        //페이징 링크를 생성하여 view에서 사용할 변수에 할당
        $data['pagination'] = $this->pagination->create_links();
        
        $page = $this->uri->segment(5, 1);
        
        if ($page > 1)
        {
            $start = (($page/$config['per_page'])) * $config['per_page'];
        }
        else
        {
            $start = ($page-1) * $config['per_page'];
        }
        $limit = $config['per_page'];
        
        $data['list'] = $this->board_m->get_list($this->uri->segment(3), '',$start,$limit);
        $this->load->view('board/list_v', $data);
    }
}
 다음글 마이그레이션 (7)
 이전글 Import export (5)

댓글

p@ssword / 2014/01/22 10:17:05 / 추천 0
 오류가 Fatal error: Unsupported operand types in C:\wamp\www\bbs\system\libraries\Pagination.php on line 124

이렇게 뜨네요
변종원(웅파) / 2014/01/22 10:24:38 / 추천 0
다음부터는 왼쪽 메뉴중 "만들면서 배우는 codeigniter" 게시판에 올려주세요.
p@ssword / 2014/01/22 10:26:30 / 추천 0
  앗..네죄송합니다. 몰랐습니다.. ㅠㅠ

어느부분이 틀렸는지 봐주실수 있으신가요?

변종원(웅파) / 2014/01/22 10:33:27 / 추천 0
$config['total_rows'] 찍어보세요. ^^

그리고 해당 파일은 열어보셨는지요? 에러메세지에도 답이 있고 해당 파일 열어보면 무슨말인지 알겁니다.


p@ssword / 2014/01/22 10:41:10 / 추천 0
 ..말씀하신부분 다시봤는데 잘모르겠네요

어느부분이 틀렸는지 말씀해주실수 있으신가요

책이랑분명 똑같이한거같은데..
변종원(웅파) / 2014/01/22 13:09:23 / 추천 0
$config['total_rows'] 찍어보셨는지요?

124라인 보면

$num_pages = ceil($this->total_rows / $this->per_page); 

ceil 함수안에서 나누기를 하죠. 숫자이외의 값으로 나누면 어찌 될까요?

ceil 함수만 찾아봐도 답이 나오는건데 무작정 모른다고만 하지 마시고 찾아보시고 시도해보세요.

$config['per_page'] = 5;  라고 선언이 되어 있어서 남은건 total_rows죠.

그래서 출력해서 값을 확인해보라는 겁니다. 그 값이 제대로 안나오면

$this->board_m->get_list() 모델을 잘못 만드신거구요.

 
p@ssword / 2014/01/22 14:01:30 / 추천 0
 하..왜안되는걸까요

$config['total_rows'] 찍어보니까 array 찍히네요

그럼 
$num_pages = ceil($this->total_rows / $this->per_page);  이게 제대로 안되고 있다는건데..

array가 찍히면 안되는거죠? 그래서 말씀하신대로 
$this->board_m->get_list()

소스도 책보면서 다시쳐봤는데도 안되네요..ㅠㅠ

변종원(웅파) / 2014/01/22 15:17:06 / 추천 0
모델에서 적용이 안됐네요. 모델 호출할때 두번째 파라미터 count가 있으면 리스트(array)를 반환하는게
아니라 전체 카운트수를 반환합니다. 페이지네이션 적용하면서 모델도 수정됩니다.
모델부분 다시 보세요. P99


p@ssword / 2014/01/22 15:22:03 / 추천 0
 아...제가 95page까지만 소스를 치고 결과물을 확인해서 오류가 뜬거였군요..ㅠㅠㅠㅠ왠지 허무하네요

오늘아침부터 이걸로 계속 붙잡고있었는데
변종원(웅파) / 2014/01/22 15:28:10 / 추천 0
컨트롤러, 모델, 뷰 형태로 설명을 하고 있습니다.

먼저 해당 챕터를 한번 읽어보시고 소스로 공부하시는걸 추천합니다.

게시판의 경우 기본 리스트 형태에 페이지네이션, 검색 등을 추가해 가며 공부하는 방식입니다.
(나중에는 로그인도 연동)

 
p@ssword / 2014/01/22 16:10:27 / 추천 0
 소스파일은 어디에 있나요?
쌈닭 / 2014/01/24 08:39:30 / 추천 0
http://www.hanbit.co.kr/exam/2026/

소스는 요기 있네요...