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.

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 likeHow 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 Khan

Owais works as a Marketing Manager at Cloudways (managed hosting platform) where he focuses on growth, demand generation, and strategic partnerships. With more than a decade of experience in digital marketing and B2B, Owais prefers to build systems that help teams achieve their full potential.

×

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