2012-08-29 4 views
0

안녕하세요, 저는 코드 점화기로 페이지 매김을 바로 잡으려고하는데 제대로 작동하지 않는 것 같습니다. 나는 두 번째 페이지를 얻을 수 있지만, 페이지 매김이 사라지고 난 아직도하지만 올바른 테이블 있고 난이 오류가 :CodeIgniter로 페이지 매기기

A PHP Error was encountered 
Severity: Notice 
Message: Undefined offset: 0 
Filename: models/evaluation_model.php 
Line Number: 37 

A PHP Error was encountered 
Severity: Notice 
Message: Trying to get property of non-object 
Filename: models/evaluation_model.php 
Line Number: 37 

컨트롤러 기능 :

function showEvaluations($offset = 0) 
     { 
      if($this->login->is_logged_in()) 
      { 
       $limit = 5; 
       $result = $this->evaluation_model->getAllEvaluations($limit, $offset); 

       if ($this->session->userdata('type') == 'admin') 
       { 
        $data['evaluations'] = $result['evaluations']; 
        $data['total'] = $result['num_rows']; 
        $data['notallowed'] = false; 
        $config = array(); 
        $config['base_url'] = base_url("evaluation/showEvaluations/"); 
        $config['total_rows'] = $data['total']; 
        $config['per_page'] = $limit; 
        $config['uri_segment'] = 3; 
        $this->pagination->initialize($config); 
        $data['pagination'] = $this->pagination->create_links(); 
        $this->load->view('allevaluations_view', $data); 
       } 
       else 
       { 
        $data['notallowed'] = true; 
        $this->load->view('allevaluations_view', $data); 
       } 


       //$this->load->view('allevaluations_view', $data); 
      } 
      else 
      { 
       $this->load->view('login_view'); 
      } 
     } 

및 모델 :

function getAllEvaluations($limit, $offset) 
     { 
      $q = $this->db->select('tblPunten.PK_PuntID, tblPunten.Titel, tblPunten.Score, tblVakken.Vak, tblUsers.username, tblUsers.Voornaam, tblUsers.Achternaam') 
          ->from('tblPunten') 
          ->join('tblVakken', 'tblPunten.FK_VakID = tblVakken.PK_VakID') 
          ->join('tblUsers', 'tblPunten.FK_UserID = tblUsers.PK_UserID') 
          ->limit($limit, $offset); 

      $query['evaluations'] = $q->get()->result(); 

      $q = $this->db->select('COUNT(*) as count', FALSE) 
          ->from('tblPunten') 
          ->limit($limit, $offset); 
      $tmp = $q->get()->result(); 
      $query['num_rows'] = $tmp[0]->count; 
      return $query; 


     } 

행 37 : $query['num_rows'] = $tmp[0]->count;

+0

는 $의 tmp' 인덱스 '0'이 설정되어있는 배열이다'확인한 인덱스 '0'에서 '객체 count' 부재라는 변수를 가지고있다. – Matt

+0

내가 다른 프로젝트에서했던 것과 똑같은 일을했고 완벽하게 작동했기 때문에 문제를 찾을 수 없었습니다. –

+0

***'$ tmp'는 인덱스'0'가 설정된 배열이고 인덱스'0'의 객체는'count'라는 멤버 변수를 가지고 있는지 확인하십시오. – Matt

답변

1

, 두 번째 쿼리 그것을 발견 :

$q = $this->db->select('COUNT(*) as count', FALSE) 
          ->from('tblPunten') 
          ->limit($limit, $offset); 

는 제한없이해야합니다 : CodeIgniter의에서

$q = $this->db->select('COUNT(*) as count', FALSE) 
         ->from('tblPunten') 
0

, ->result() 객체.

배열의 형태로 원하면 ->result_array()을 사용하여 결과 집합을 배열 형식으로 얻을 수 있습니다.

$tmp = $q->get()->result_array();//made changes 
$query['num_rows'] = $tmp[0]['count'];//will work