blog images
JQuery DataTables Ajax based Or Server Side Sorting, Pagination and Searching

jQuery DataTable server-side sorting, pagination, and searching using PHP and MySQL

In this PHP Javascript Tutorial, I'm attending to tell you the way to use jQuery datatable plugin with Server-side processes like looking sorting and page number with PHP and MySQL.

There area unit countless practicality in-build by default with jQuery DataTables, it'll save you countless time to implement looking sorting and page number manually from server facet victimization PHP and MySQL.

It will increase the performance of the application if you receive the chunk information from massive amounts of knowledge kept within the info tables.

jQuery DataTables is an open supply, it suggests that you'll be able to freely transfer the libraries for your internet application and you'll be able to simply customize this plugin because of extreme flexibilities.

Create Information Table


Run the subsequent MySQL question to form a table "Profile" in your info to start out with this instance.

CREATE TABLE `users` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(255) NOT NULL,
 `phone` varchar(20) NOT NULL,
 `email` varchar(100) NOT NULL,
 `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
 `updated_at` datetime DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=latin1


Create a User PHP file
In this step, I will create HTML file and include the DataTables libraries and then instantiate the DataTable on the table.

index.php

<!DOCTYPE html>
<html>
<head>
   <title>jQuery DataTable server side sorting,pagination and searching using PHP and MySQL</title>
   <script type="text/javascript" src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
   <link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/css/jquery.dataTables.css">
   <script type="text/javascript" charset="utf8" src="https://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.min.js"></script>
</head>
<body>
<div class="container">
  <h2>jQuery DataTable server side sorting,pagination and searching using PHP and MySQL</h2>
  <table id="demo">
    <thead>
      <tr>
          <th>Id</th>
          <th>Name</th>
          <th>Age</th>
          <th>Salary</th>
      </tr>
    </thead>
  </table>
</div>
</body>
<script type="text/javascript">
  $(document).ready(function() {
      $('#demo').dataTable({
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": "server.php",
        "aoColumns": [
              { mData: 'id' } ,
              { mData: 'name' },
              { mData: 'email' },
              { mData: 'phone' }
            ]
      });  
  });
</script>
</html>

 

Create ajaxrequest.php File


In this step, I will create a PHP file "ajaxrequest.php" and write MySQL query for each ajax request from DataTable components.

$tableColumns = array('id','name', 'phone', 'email');
$primaryKey = "id";
  $mysqli = new mysqli(localhost, root, yourdbpassword, yourdbname);

$limit = "";
if (isset($_GET['iDisplayStart'] ) && $_GET['iDisplayLength'] != '-1' )
{
  $limit = "LIMIT ".mysqli_real_escape_string($mysqli,$_GET['iDisplayStart'] ).", ".
    mysqli_real_escape_string($mysqli,$_GET['iDisplayLength'] );
}
/*
 * Ordering
 */
if ( isset( $_GET['iSortCol_0'] ) )
{
  $orderBy = "ORDER BY  ";
  for ( $i=0 ; $i   {
    if ( $_GET[ 'bSortable_'.intval($_GET['iSortCol_'.$i]) ] == "true" )
    {
      $orderBy .= $tableColumns[ intval( $_GET['iSortCol_'.$i] ) ]."
        ".mysqli_real_escape_string($mysqli,$_GET['sSortDir_'.$i] ) .", ";
    }
  }