codeigniter分页查询

时间:2010-11-24 01:30:28

标签: sql codeigniter foreign-keys paginate

到目前为止,找到了很多帮助,以使分页适用于get(table)命令。

我需要的是根据sql where语句从几个链接表中选择几个条目。

我想query命令是要使用的命令,但是在这种情况下如何进行分页,因为该命令不需要额外的参数$config['per_page']

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

如果没有更多信息继续下去,我认为您正在寻找的是以下内容。

public function pagination_example($account_id)
{
    $params = $this->uri->ruri_to_assoc(3, array('page'));

    $where = array(
        'account_id'    => $account_id,
        'active'        => 1
    );

    $limit = array(
        'limit'     => 10,
        'offset'    => (!empty($params['page'])) ? $params['page'] : 0
    );

    $this->load->model('pagination_model');
    $data['my_data'] = $this->pagination_model->get_my_data($where, $limit);

    foreach($this->uri->segment_array() as $key => $segment)
    {
        if($segment == 'page')
        {
            $segment_id = $key + 1;
        }
    }

    if(isset($segment_id))
    {
        $config['uri_segment'] = $segment_id;
    }
    else 
    {
        $config['uri_segment'] = 0;
    }

    $config['base_url'] = 'http://'.$_SERVER['HTTP_HOST'].'/controller_name/method_name/whatever_your_other_parameters_are/page/';              
    $config['total_rows'] = $this->pagination_model->get_num_total_rows();// Make a method that will figure out the total number
    $config['per_page']     = '10';

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

    $this->load->view('pagination_example_view', $data);

}

    // pagination_model
public function get_my_data($where = array(), $limit = array())
{
    $this->db
        ->select('whatever')
        ->from('wherever')
        ->where($where)
        ->limit($limit['limit'], $limit['offset']);
    $query = $this->db->get();

    if($query->num_rows() > 0)
    {
        $data = $query->result_array();
        return $data;
    }
    return FALSE;
}

这至少应该让你走上正轨 如果这不是你要求的话,如果你能更具体一点,我很乐意提供更多帮助。你的一些代码怎么样。

答案 1 :(得分:0)

我能想到的唯一其他选项是在select语句中编写计数或不限制查询并使用array_slice选择返回数组的一部分。