Codeigniter框架实现获取分页数据和总条数的方法

本文实例讲述了Codeigniter框架实现获取分页数据和总条数的方法。分享给大家供大家参考。具体实现方法如下:

一般在数据分页的时候需要获取当前页的数据和总条数,一般人是在model中封装两个函数分别获取当前页的数据和数据总条数,业务逻辑类似,感觉有点冗余,可以封装在一起

复制代码 代码如下:
/**
* 获取分页数据及总条数
* @param string @tablename 表名
* @param mixed $where 条件
* @param int $limit 每页条数
* @param int $offset 当前页
*
*/
public function get_page_data($tablename, $where, $limit, $offset, $order_by, $db)
{
        if(empty($tablename))
        {
            return FALSE;
        }
       
        $dbhandle = empty($db) ? $this->db : $db;
       
        if($where)
        {
            if(is_array($where))
            {
                $dbhandle->where($where);
            }
            else
            {
                $dbhandle->where($where, NULL, false);
            }
        }
       
        $db = clone($dbhandle);
        $total = $dbhandle->count_all_results($tablename);
       
        if($limit)
        {
            $db->limit($limit);
        }
       
        if($offset)
        {
            $db->offset($offset);
        }
       
        if($order_by)
        {
            $db->order_by($order_by);
        }
       
        $data = $db->get($tablename)->result_array();
       
        return array('total' => $total, 'data' => $data);
}

希望本文所述对大家基于Codeigniter框架的PHP程序设计有所帮助。

你可能感兴趣的:(Codeigniter框架实现获取分页数据和总条数的方法)