Star
example.php
<?php

//  Php frameworks add the autoloader class for you.
//  If you don't use any php framework, be sure that you have included it yourself.
//
//  require_once '../path/to/../vendor/autoload.php';

use Ozdemir\Datatables\Datatables;
use Ozdemir\Datatables\DB\SQLite;

// using SQLite as DB for the examples. Change here to fit your db.
$path = dirname(__DIR__).'/database/Chinook_Sqlite_AutoIncrementPKs.sqlite';

$dt = new Datatables(new SQLite($path));
$dt->query('Select TrackId, Name, UnitPrice from Track');

echo $dt->generate();

A simple PHP library for DataTables server-side processing.

Handles search, filter, paging and ordering in just a few lines — works with raw SQL or any framework's query builder.

$ composer require ozdemir/datatables
Generates JSON in a few lines of code.
Editable columns with closures.
Supports custom filters out of the box.
Handles complex queries with joins.
MySQL, SQLite, PostgreSQL native PHP support.
Works with Laravel, CodeIgniter, Phalcon, Prestashop.

Installation

Requires PHP 7.1.3+. Composer is recommended.

composer require ozdemir/datatables

Quick example

<?php
use Ozdemir\Datatables\Datatables;
use Ozdemir\Datatables\DB\SQLite;

$dt = new Datatables(new SQLite('path/to/database.sqlite'));
$dt->query('Select TrackId, Name, UnitPrice from Track');

return $dt->generate();

Available methods

query($query) required

Sets the SQL query.

generate() required

Runs the query and returns JSON.

toJson()

Returns the output as JSON.

toArray()

Returns the output as array.

add($col, fn)

Adds an extra column.

edit($col, fn)

Edits a column with a closure.

filter($col, fn)

Applies custom filtering.

hide($col)

Removes a column from output.

setDistinctResponseFrom($col)

Adds distinct values to response.

setDistinctResponse($data)

Adds custom data to distinctData.

getColumns()

Returns column names (dev).

getQuery()

Returns the generated SQL (dev).