【问题标题】:Search with pagination in codeigniter在 codeigniter 中使用分页搜索
【发布时间】:2017-12-20 15:59:53
【问题描述】:

您好,我正在尝试在 Code Igniter 中使用分页进行搜索,它在第一页上正常工作,但是当用户尝试单击下一页的链接时,它显示的分页数大于实际搜索结果。加上数据显示不正确。

我的控制者:

public function search() {
    try {

        $data = new stdClass();

        $name = $this->input->post('name');

        $config["base_url"] = base_url() . "gadmin_user/search";
        $config["total_rows"] = $this->Gadmin_model->search_count($name);
        $config["per_page"] = 10;
        $config["uri_segment"] = 3;
        $choice = $config["total_rows"] / $config["per_page"];
        $config["num_links"] = round($choice);
        $config['full_tag_open'] = '<ul class="pagination">';
        $config['full_tag_close'] = '</ul>';
        $config['cur_tag_open'] = '<li class="active"><a href="#">';
        $config['cur_tag_close'] = '</a></li>';
        $config['num_tag_open'] = '<li>';
        $config['num_tag_close'] = '</li>';
        $config['prev_link'] = '<li>&lt;';
        $config['next_tag_open'] = '<li>';


        $this->pagination->initialize($config);

        $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
        $data->users = $this->Gadmin_model->serach_by_user($name,$config["per_page"], $page);
        $data->links = $this->pagination->create_links();

        $this->load->view('gadmin/templates/header');
        $this->load->view('gadmin/user/search', $data);
        $this->load->view('gadmin/templates/footer');

    } catch (Exception $e) {
        show_error($e->getMessage() . ' --- ' . $e->getTraceAsString());
    }
}

我的模特:

public function search_count($keyword){


    $q =  $this->db->select('*')
                        ->from('users')
                        ->where("name LIKE '%$keyword%'")
                        ->get();

    return $q -> num_rows();

}


public function serach_by_user($keyword,$start, $limit){

    $search =  $this->db->select('*')
                        ->from('users')
                        ->where("name LIKE '%$keyword%'")
                        ->limit($start, $limit)
                        ->get();

    if($search->num_rows() > 0){
        return $search->result();
    }else{
        return false;
    }

}

【问题讨论】:

    标签: php codeigniter search pagination


    【解决方案1】:

    要获得限制开始使用这个,限制是 $config["per_page"]

      $c=1;
            if($page){
                $c = $page;
                $limit_start = $limit * ($c - 1);
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      • 2021-01-02
      • 2014-03-26
      相关资源
      最近更新 更多