CodeIgniter Pagination Demo:

This is a small example demo application based on codeigniter pagination tutorial. You can checkout how the pagination would work on your real time application. Currently few example data are added and are paginated. However, you can add as many data you want using the codeigniter contact demo page. Also, please refer to the complete code below the example to see how this is working behind the scene.

View The Codeigniter Pagination Tutorial

Contact Messages Listings:

Id Name Email Subject Message Sent
709 Dr Rodrigo Altario [Recognized by WHO] Only physical book you need when medical help is not on the way. Practical Medic This is the only physical book you need when medical help is not on the way:... Jan 28, 2023
710 Rae Loar Invitation for admin to Join Private Marketing Mastermind I wanted to share with you something that I've been using to grow my online... Feb 9, 2023
711 Eugenio Andres How to make $10K+ per month online [FREE VEBINAR] Hi. I teach people how to build an online marketing business from scratch... Feb 17, 2023

The Controller Code:

    public function pagination_demo($page=1){
            $pagingConfig   = $this->paginationlib->initPagination("/codeigniter/pagination-demo",$this->messagemodel->get_count());
            $this->data["pagination_helper"]   = $this->pagination;
            $this->data["messages"] = $this->messagemodel->get_by_range((($page-1) * $pagingConfig['per_page']),$pagingConfig['per_page']);
            return $this->view();             
        catch (Exception $err)
            log_message("error", $err->getMessage());
            return show_error($err->getMessage());

The Library Code:

     *Initialize the pagination rules for cities page 
     * @return Pagination
class Paginationlib {
    //put your code here
    function __construct() {
         $this->ci =& get_instance();

    public function initPagination($base_url,$total_rows){
        $config['per_page']          = 1;
        $config['uri_segment']       = 3;
        $config['base_url']          = base_url().$base_url;
        $config['total_rows']        = $total_rows;
        $config['use_page_numbers']  = TRUE;
        $config['first_tag_open'] = $config['last_tag_open']= $config['next_tag_open']= $config['prev_tag_open'] = $config['num_tag_open'] = '
  • '; $config['first_tag_close'] = $config['last_tag_close']= $config['next_tag_close']= $config['prev_tag_close'] = $config['num_tag_close'] = '
  • '; $config['cur_tag_open'] = "
  • "; $config['cur_tag_close'] = "
  • "; $this->ci->pagination->initialize($config); return $config; } }

    The View Code:

        <form action="{$base_url}admin/message/delete" method="POST">
        <table cellspacing="0" cellpadding="4" border="0" class="table">
                    <th> <input type="checkbox" value=""/> </th>
                    <th> Id </th>
                    <th> Name </th>
                    <th> Email </th>
                    <th> Subject </th>
                    <th> Message </th>
                    <th> Sent </th>
                {foreach from=$messages item=message name="outer"}
                        <td> <input type="checkbox" name="id[]" value="{$message->getId()}"/> </td>
                        <td> {$message->getId()} </td>
                        <td> {$message->getName()} </td>
                        <td> {$message->getEmail()} </td>
                        <td> {$message->getSubject()} </td>
                        <td> {$message->getMessage()|truncate:80} </td>
                        <td> {$message->getTime()|date_format} </td>
        <br />
        <div class="clear pagination">