当我尝试将pagenation放在结果页面上时,我收到错误不支持的operands\libraries\Pagination.php

vic*_*cky 1 php pagination codeigniter

**This is my controller**
$this->load->library("pagination");  
$this->load->helper('url');
$this->load->view('includes/kheader');
$this->load->view('includes/kmenu');

$per_page=$this->input->post('per_page');
$look = $this->input->post('look');
$age = $this->input->post('age'); 
$age_from = $this->input->post('age_from');
$age_to = $this->input->post('age_to');
$se_ct = $this->input->post('sect');
$subsect = $this->input->post('subsect');
$coun_try = $this->input->post('country');
$sta_te = $this->input->post('state');
$ci_ty = $this->input->post('city');
$qualification = $this->input->post('qualification');

        $data['base']=$this->config->item('base_url');
        $data['title']= 'Message form';
        $this->load->model("searchresultss");
     $per_pg=1;
        $offset=$this->uri->segment(2);
        $total=$this->searchresultss->login($per_pg,$offset,$per_page,$look,$age, $age_to,$age_from,$se_ct,$subsect,$coun_try,$sta_te, $ci_ty, $qualification);


        $this->load->library('pagination');
        $config['base_url'] = $data['base'].'/searchresult/users/';
        $config['total_rows'] = $total;
        $config['per_page'] = $per_pg;
        $config['full_tag_open'] = '<div id="pagination">';
        $config['full_tag_close'] = '</div>';

        $this->pagination->initialize($config);
        $data['pagination']=$this->pagination->create_links();

        $data['query']=$this->searchresultss->login($per_pg,$offset,$per_page,$look,$age, $age_to,$age_from,$se_ct,$subsect,$coun_try,$sta_te, $ci_ty,$qualification);
    $this->load->view('searchresult',$data);
Run Code Online (Sandbox Code Playgroud)

**这是我的模特**

 public function login($per_page=3,$look,$age,$age_to,$age_from,$se_ct,$subsect,$coun_try, $sta_te, $ci_ty,$qualification,$per_pg,$offset)
 {
       $query=$this->db->get('users',$per_pg,$offset);
        return $query->result();
 }
     public function message_count()
    {
        return $this->db->count_all("SELECT *
FROM users
WHERE  

if('$se_ct'!='',sect =  '$se_ct' AND if('$subsect' !='',subsect =  '$subsect',subsect like  '%%'),sect like  '%%' AND subsect like  '%%')
AND
IF( '$coun_try' !='', country =  '$coun_try'
AND 
if('$sta_te' !='', state =  '$sta_te'
AND  
if('$ci_ty' !='',city =  '$ci_ty',city like  '%%'),state LIKE  '%%'
AND city LIKE  '%%'), country LIKE  '%%'
AND state LIKE  '%%'
AND city LIKE  '%%' ) 
AND age >=  '$age_from'
AND age <=  '$age_to'
AND 
IF('$qualification' !='',qualification =  '$qualification',  qualification LIKE  '%%' ) 
And gender = '$look'
And status='1'");
    }
Run Code Online (Sandbox Code Playgroud)

我是ci框架的新手是iam试图在abeobe提到的方式中将分页放在我的结果页面上,当我这样做时我得到错误不支持operands\libraries\pagination.php所以请求你帮助我致命错误:不支持的操作数类型in H:\xampp\htdocs\kkci\system\libraries\Pagination.php on line 124是我得到的错误

rai*_*ace 7

你的问题是,你正在分配的阵列,而不是一个的数量$config['total_rows']

您可以通过调用模型中的登录函数来获取此值.

$total=$this->searchresultss->login($per_pg,$offset,$per_page,$look,$age, 
$age_to,$age_from,$se_ct,$subsect,$coun_try,$sta_te, $ci_ty, $qualification);
Run Code Online (Sandbox Code Playgroud)

然后你分配它 $config['total_rows'] = $total;

但是在您的模型中,函数被编写为返回一个数组:

  public function login($per_page=3,$look,$age,$age_to,$age_from,$se_ct,
  $subsect,$coun_try, $sta_te, $ci_ty,$qualification,$per_pg,$offset)
     {
           $query=$this->db->get('users',$per_pg,$offset);
            return $query->result(); //this is an array that is returned
     }
Run Code Online (Sandbox Code Playgroud)

要解决这个问题,我相信你可以将结果集的计数分配给total_rows变量:

$config['total_rows'] = count($total);
Run Code Online (Sandbox Code Playgroud)