Codeigniter分页多表

时间:2014-08-14 04:39:23

标签: mysql codeigniter pagination

我在数据库和分页方面有学习,任务是,在选定的表格上显示数据。

例如,当我们选择" table_data1 "浏览器将显示来自" table_data1 "的数据并将其显示为分页页面,

我发现了一个关于分页的教程,然后我修改了代码,结果是,是的,它显示了数据的第一页记录中的5个,但是当我选择下一页时,下一页的paginaton没有显示。

我的模型 $ tabel 是选择 table_data $ 来运行查询。

class Page_model  extends CI_Model{

function join_data($limit, $start,$table)
{

    $this->db->select('*');
    $this->db->limit($limit, $start);
    $this->db->from('tbl_param');
    $this->db->join('tbl_data' . $table, 'tbl_data' . $table .'.id  =  tbl_param.child_id', 'left');
    $this->db->join('table_limit' . $table, 'table_limit' . $table .'.id  =  tbl_param.child_id', 'left');
    $query4 = $this->db->get();
    $this->db->limit($limit, $start);
    return $query4->result();
}
}

这个我的控制器 $ tabel 是选择 table_data $ 来显示

class Page extends CI_Controller{

function page($table)
    {
        $this->load->library('pagination'); 
        $config['base_url'] = base_url().'index.php/page/'.$table.'/';            
        $config['total_rows'] = 20;
        $config['per_page'] = 5;
        $this->pagination->initialize($config);

        $page = ($this->uri->segment(5)) ? $this->uri->segment(5) : 0;

        $data['table'] = $this->page_model->join_data($config["per_page"], $page,$table);
        $data['links'] = $this->pagination->create_links();
        $this->load->view('v_page', $data);
    }
}

和视图

 <?php foreach($table as $tables){ ?>
        <tr>
            <td><?php echo $tables->id;?></td>
            <td><?php echo $tables->param;?></td>
            <td><?php echo $tables->data;?></td>
            <td><?php echo $tables->alarm;?></td>
        </tr>
        <?php } 
        echo $links;
        ?>

我希望有人帮助我或解释,我该怎么办?

1 个答案:

答案 0 :(得分:0)

我认为您的问题出在$config['base_url']$page

您的$config['base_url']应为base_url().'index.php/page/page/'.$table;

请注意第二个page,即您需要在page控制器内调用的方法。

您的$page应为$page = $this->uri->segment(4);