문제

I'm trying to load a blog type page, I load the entries from my database with this controller

    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");
}

and this model

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

        return $result;
    }

I count the entries in the database where I call them out by their ID. But now I'm trying to create multiple pages that expand automatically everytime I enter a new entry. So lets say I have 27 entries, and want to have no more than 5 entries on a single page, how do I make it so that it creates the necessary 6 pages to show them without loading the other 3 empty entries and stuff. I'm new to codeigniter and have always worked with ASP .NET, any help would be helpfull. Thanks in advance!

p.s. english isn't my first language

도움이 되었습니까?

해결책

CodeIgniter have his own pagination Class. Take a look here : http://ellislab.com/codeigniter/user-guide/libraries/pagination.html

You can try this firstly and adapt to your project :

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);
}

Edit your "getBlog" function model to get results with limit clause, like this :

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

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

    return FALSE;
}

And use in your view this code to create your pagination links :

echo $this->pagination->create_links();
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top