我想在我的内容管理网站上创建分页

时间:2014-04-10 07:41:57

标签: php codeigniter managed

我正在尝试加载博客类型页面,我使用此控制器从我的数据库加载条目

    public function blog($page){
    $this->load->model("model_get");
    $this->load->view("site_header");
    $this->load->view("site_nav");
    $counter = $this->model_get->getBlogcount();

    for($counter; $counter > 0; $counter --){
        $data["results"] = $this->model_get->getBlog($counter);
        $this->load->view("content_blog", $data);
        }
    }

    $this->load->view("site_footer");
}

和这个模型

    function getBlogcount(){
        $result = $this->db->count_all("blog");

        return $result;
    }

我计算数据库中的条目,我按其ID称呼它们。但现在我尝试创建多个页面,每次进入新条目时都会自动扩展。所以假设我有27个条目,并希望在一个页面上不超过5个条目,我如何创建它以便创建必要的6个页面来显示它们而不加载其他3个空条目和东西。 我是codeigniter的新手,并且一直使用ASP .NET,任何帮助都会有所帮助。 提前谢谢!

P.S。英语不是我的第一语言

1 个答案:

答案 0 :(得分:0)

CodeIgniter拥有自己的分页类。看看这里:http://ellislab.com/codeigniter/user-guide/libraries/pagination.html

您可以先尝试并适应您的项目:

public function blog($page = 0)
{
   $this->load->library('pagination');
   $this->load->helper('url');

   $config['base_url'] = base_url('blog/'. $page);
   $config['total_rows'] = $this->model_get->getBlogcount();
   $config['per_page'] = 5;

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

   $data['results'] = $this->model_get->getBlog($config['per_page'], $page);
   $this->load->view("content_blog", $data);
}

编辑你的" getBlog"函数模型用limit子句得到结果,如下:

function getBlog($limit, $start)
{
    $results = $this->db->limit($limit, $start)->get('your_blog_table');

    if ($results) 
    {
        return $results->result();
    }

    return FALSE;
}

并在您的视图中使用此代码来创建您的分页链接:

echo $this->pagination->create_links();