This website uses cookies

Our website, platform and/or any sub domains use cookies to understand how you use our services, and to improve both your experience and our marketing relevance.

📣 Join the live AMA session with Adam Silverstein on open source and WordPress core! Register Now →

How To Use Codeigniter Pagination in Your Projects

Updated on December 8, 2021

2 Min Read

In this tutorial, I will demonstrate how to use Codeigniter Pagination in your projects built on any PHP Hosting. I will start with the Model, then Controller and finally with the View.

pagination in codeigniter

CodeIgniter application usually have at least one database. In an average project, the database produces a lot of queries that need to be presented. The problem is that the display of the results could be messy. This is where pagination in CodeIgniter comes to the rescue.

You might also like: How To Host CodeIgniter PHP On Cloud Using SSH

The Model

The model for the demo application carries out two important tasks: It provides a count of the records in the Departments table, and retrieve the list of departments from the table.

The path of the model is models/departments.php. Here is the code for the model:

<?php

class Departments extends CI_Model

{

   public function __construct() {

       parent::__construct();

   }



   public function record_count() {

       return $this->db->count_all("Departments");

   }



   public function fetch_departments($limit, $start) {

       $this->db->limit($limit, $start);

       $query = $this->db->get("Departments");



       if ($query->num_rows() > 0) {

           foreach ($query->result() as $row) {

               $data[] = $row;

           }

           return $data;

       }

       return false;

   }

}



Here’s a short definition of the methods in the model:

record_count() returns the number of records;  `fetch_departments()`  method retrieves a list of all the records from the Departments table.

You Might Also Like: Setting up Easy Laravel Pagination With Vue

The Controller

The controller for the application is located in the default folder and is named welcome.php. This controlled calls a function `departmentdata()` that offers common configuration options for the Codeigniter pagination library. Here is the code for the Controller:

<?php

class Welcome extends CI_Controller

{

   public function __construct() {

       parent:: __construct();

       $this->load->helper("url");

       $this->load->model("Departments");

       $this->load->library("pagination");

   }

   public function departmentdata() {

       $config = array();

       $config["base_url"] = base_url() . "welcome/departmentdata";

       $config["total_rows"] = $this->Departments->record_count();

       $config["per_page"] = 5;

       $config["uri_segment"] = 3;

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

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

       $data["results"] = $this->Departments->

           fetch_departments($config["per_page"], $page);

       $data["links"] = $this->pagination->create_links();

       $this->load->view("departmentdata", $data);
   }
}

You might also like: How To Pass Data From Controller To View In CodeIgniter

The View

The View of the application is located in the views/departmentdata.php. Here is the complete code for the View:

<body>

<div id="container">

   <div id="body">

       <?php

       foreach($results as $data) {

           echo $data->Departments . " - " . $data->Labs . "<br>";

       }

       ?>

       <p><?php echo $links; ?></p>

   </div>



</div>

</body>

The Application

The URl of the demo application is http://domainname/welcome/departmentdata

Here is how it would look. You could see that the large dataset is cleanly displayed.

Stop Wasting Time on Servers

Cloudways handle server management for you so you can focus on creating great apps and keeping your clients happy.

Conclusion

Pagination in CodeIgniter is a great way of displaying a large number of database query results in a clean manner. I hope that this tutorial would help you implement this technique into your projects.

Share your opinion in the comment section. COMMENT NOW

Share This Article

Owais Alam

is the WordPress Community Manager at Cloudways - A Managed WooCommerce Hosting Platform and a seasoned PHP developer. He loves to develop all sorts of websites on WordPress and is in love with WooCommerce in particular. You can email him at [email protected]

×

Get Our Newsletter
Be the first to get the latest updates and tutorials.

Thankyou for Subscribing Us!

×

Webinar: How to Get 100% Scores on Core Web Vitals

Join Joe Williams & Aleksandar Savkovic on 29th of March, 2021.

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

Want to Experience the Cloudways Platform in Its Full Glory?

Take a FREE guided tour of Cloudways and see for yourself how easily you can manage your server & apps on the leading cloud-hosting platform.

Start my tour

CYBER WEEK SAVINGS

  • 0

    Days

  • 0

    Hours

  • 0

    Mints

  • 0

    Sec

GET OFFER

For 4 Months &
40 Free Migrations

For 4 Months &
40 Free Migrations

Upgrade Now