簡體   English   中英

使用CodeIgniter進行分頁

[英]pagination with 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;

找到了,第二個查詢:

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

必須沒有限制:

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

在codeigniter中, ->result()一個對象。

如果您希望使用數組形式,則可以使用->result_array()以便以數組形式獲取結果集。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM