Alternative Query Untuk Datatables

.Alternative Query untuk datatables, beberapa waktu yang lalu onphpid menerima banyak sekali pertanyaan baik melalui email, komentar maupun inbox facebook tentang bagaimana sih cara menggunakan table join atau SQL Join di datatables ? mungkin ini terdengar sangat mudah, “masa join aja gak bisa ? ” tapi ternyata setelah onphpid mencoba membuatnya memang cukup sulit, meskipun sudah menggunakan fasilitas Server-Side yang disediakan datatables yaitu ssp.class.php seperti yang pernah ditulis pada tutorial sebelumnya Menangani Jumlah Data yang Besar pada Datatables masih sangat sulit. Hingga akhirnya onphpid memutuskan untuk membuat script Alternative untuk menangani query table join atau SQL Join di datatables.

Mempersiapkan Datatables di localhost

Dalam mempersiapkan datatables di localhost kalian bisa mengikuti tutorial menangani jumlah data yang besar pada datatables atau tutorial-tutorial datatables sebelumnya karena hampir sama, kita hanya akan mengganti script yang berada di file load-data.php agar kita bisa melakukan query join.

kemudian untuk melakukan uji coba sql join kita perlu membuat database, buatlah dengan nama “datatables-join” dan dua buah table karyawan dan position untuk di-join-kan. Kalian bisa langsung mengimportkan file .sql (dot sql) dari sini.

Setelah database dan table sudah selesai dibuat kita langsung saja menuju load-data.php dan mengeksekusinya.

Membuat Script Query Join untuk Datatables

Pertama : Membuat koneksi dengan database.

file config.php berisi informasi untuk koneksi database.

Kedua : Menentukan id table. id table ini bisa kalian manfaatkan untuk keperluan edit dan delete.

Ketiga : Menentukan kolom yang akan ditampilkan di bagian table view.

Keempat : variable FROM yang bisa kalian gunakankan untuk query join.

Kelima : SQL custome, kita menggunakan implode untuk menyatukan array columns menjadi sebuah string dan ditambahkan $id_table yang telah disisipkan tanda (,) koma ketika id table di set.

Keenam : Kita akan mulai dengan fungsi Search Datatables yang idenya adalah mencari semua keyword di dalam semua table yang ada dengan bantuan looping (for) dari array columns dan pada akhirnya membentuk sebuah string (syntax SQL wildcard).

berikut hasilnya :

diakhir syntax terdapat ‘OR’ yang bisa membuat SQL kita error karena kelebihan ‘OR’ agar tidak kelebihan kita menggunakan pengkondisian jika nilai $i kurang dari total $columns dikurangi 1. sehingga OR dipaling akhir dihilangkan.

berikut kode lengkapnya :

terakhir pada fungsi Search kita melakukan penambahan $sql .= ‘ WHERE ‘. $where; baca maksud dari ( .= / operator string ).

Ketujuh : Selanjutnya adalah pengurutan ASC atau DESC percolumn, mula-mula kita tangkap dulu nilai yang dikirimkan via AJAX untuk sorting columns.

karena nilai dari sorting berupa angka kita perlu mengubahnya menjadi nama column dulu agar bisa menjalakan fungsi sort. untungnya kita membuat list table yang ingin kita tambilkan dengan array sehingga kita cukup menggunakan kode berikut dan outputnya adalah nama table.

Kedelapan : Menghitung total data, tahap 1 hingga 7 diatas merupakan tahap-tahap memanipulasi SQL SELECT saja jadi belum tereksekusi ditahap ke 8 ini kita akan melakukan eksekusi sekaligus menghitung total datanya.

kesembilan : Menambahkan Limit, untuk menghitung total data dan menggunakan limit kita memerlukan dua eksekusi query karena jika kita menggunakan satu eksekusi query maka total data akan sama dengan data yang dibatasi. misalkan kita mempunyai data 100 tapi di berikan LIMIT 10 maka total data kita hanya 10 saja bukan 100.

kalau tadi kita memberi nama eksekusi pertama dengan nama $count, maka yang kedua kita berinama $data. namun sebelum itu kita akan memanipulasi SQL lagi dengan menambahkan LIMIT.

Kesepuluh : Menyusun data Json, karena datatables menginginkan outputnya adalah json maka kita harus membuatnya menjadi json.

kode berikut merupakan manipulasi pengurutan data sesuai $columns yang sudah kita buat diatas.

tearkhir adalah json_encode() untuk mengubah array menjadi json.

Sekian Alternative SQL Join untuk Datatables semoga bermanfaat apabila ada error atau ada cara yang lebih baik bisa dishare melalui komentar karena yang onphpid buat masih sangat-sangat sederhana. selamat berekseperimen dan terimakasih.

kode selengkapnya bisa kalian dapatkan disini.

Membuat Form login dengan bootstrap dan PHP
Langkah Pertama Membuat Theme WordPress untuk Pemula

  • blogadiputra

    halo,

    salam kenal, lagi coba2 migrasi dari kendo ke datatables. kalo di kendo saya biasa pake view mysql, jadi join ya di view mysql nya. kalo di datatables emang ga bisa pake view mysql ya? biar simple aja gitu..

    • Hemm bisa banget gan…. cuma karena banyak yang bingung atau tidak familiar dengan view mysql (mungkin tidak populer) jadi ane buat versi alternative…

      Dari datatables sendiri sebenarnya sudah menyediakan fasilitas join yang bisa kita gunakan… keuntungannya datatables bisa bekerja lebih maksimal dengan fitur-fiturnya.. tapi untuk versi alternative diatas maksimal atau tidak kompatibel atau tidak dengan fitur-fitur lainnya semua bergantung dengan kemampuan programmernya

  • Ramdhani

    kalau mau nambah button untuk edit itu di bagian mananya ya mas?