Where merupakan sebuah kondisi yang sering digunakan saat menampilkan data. Untuk Membuat Query builder Codeigniter where dan where in memerlukan pemahaman SQL terlebih dahulu.
Karakteristik dan penggunaan SQL Kondisi “WHERE“
Where operator menampilkan data tertentu.
Contoh ketika ingin menampilkan data karyawan yang berasal dari jakarta.
maka dapat digunakan query where
Select * from karyawan where alamat = 'jakarta'
Penerapan sql where di atas dapat diimplimentasikan pada bentuk berikut di query builder codeigniter
Bentuk 1 Query builder codeigniter where pada model :
public function karyawan_where() { $this->db->select('*'); $this->db->from('karyawan'); $this->db->where('alamat','jakarta'); return $this->db->get(); }
Bentuk 2 Query Builder Codeiniter where:
public function karyawan_where() { return $this->db->get_where('karyawan', array('alamat' => 'jakarta')); }
Karakteristik dan penggunaan SQL Kondisi “WHERE IN“
Where operator menampilkan data tertentu secara multi.
Sebagai contoh jika ingin menampilkan data karyawan yang memlliki alamat di jakarta dan bandung maka dapat digunakan where in
Select * from karyawan where alamat = 'jakarta','bandung'
Penerapan sql where in pada query builder codeigniter
Bentuk 1 Query Builder Codeigniter where in
public function karyawan_where_in() { $this->db->select('*'); $this->db->from('karyawan'); $this->db->where_in('alamat', array('jakarta','bandung')); return $this->db->get(); }
Bentuk 2 Query Builder Codeigniter where in
public function karyawan_where_in() { $this->db->where_in('alamat', array('jakarta', 'bandung')); return $this->db->get('karyawan'); }
Masing – masing query builder codeigneter di atas memiliki 2 bentuk penulisan.
Bentuk 1 dan 2 memiliki ouput yang sama. Silahkan digunakan sesuai dengan keinginan. Salah satu Pertimbangan lebih baik menggunakan bentuk 1 atau 2 adalah jumlah baris dan code yang digunakan.
Query builder “Bentuk 2” pada masing – masing contoh memiliki jumlah code dan baris yang lebih sedikit.
Manfaat yang didapat dari dibuatnya query builder codeigniter adalah membuat query dengan minimal scripting. Untuk kasus di atas penggunaan bentuk 2 akan menjaid pilihan terbaik karena menggunakan code atau script yang lebih sedikit.
Contoh Program Codeigniter Mengunakan Kondisi Where dan Where in
1. Buatlah Database “indonetsource” di phpmyadmin. (Silahkan buat database dengan nama lain atau gunakan database yang sudah ada
2. Buatlah tabel karyawan pada database
CREATE TABLE `karyawan` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nama` varchar(50) NOT NULL,
`jenis_kelamin` enum(‘Laki-laki’,’Perempuan’) NOT NULL,
`alamat` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1
.3. Instalasi codeigniter pada komputer dan lakukan config database untuk koneksi database ke codeigniter project.
4. Selesaikan script pada Model, Controller dan View
Script Model
dibuat pada namaproject/application/models
M_karyawan.php
<?php class m_karyawan extends CI_Model{ public function karyawan(){ //query menampilkan semua data karyawan return $this->db->get('karyawan'); } public function karyawan_where($alamat) { //query menampilkan data karyawan berdasarkan alamat tertentu return $this->db->get_where('karyawan', $alamat); } public function karyawan_where_in($alamat_in) { //query menampilkan data karyawan berdasarkan alamat tertentu secara multi $this->db->where_in('alamat',$alamat_in); return $this->db->get('karyawan'); } }
Script Controller
dibuat pada namaproject/application/controllers
Karyawan.php
<?php class Karyawan extends CI_Controller{ function __construct() { parent::__construct(); $this->load->model('m_karyawan'); } public function index(){ $data['karyawan'] = $this->m_karyawan->karyawan()->result(); $alamat = array('alamat' => 'jakarta'); $data['karyawan_where'] = $this->m_karyawan->karyawan_where($alamat)->result(); $alamat_in = array('jakarta','bandung'); $data['karyawan_where_in'] = $this->m_karyawan->karyawan_where_in($alamat_in)->result(); $this->load->view('karyawan',$data); } }
Script View
dibuat pada namaproject/application/view
karyawan.php
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="http://localhost/indonetsource/bootstrap/css/bootstrap.min.css"> </head> <body> <div class="container"> <div class="card"> <div class="card-header"> <h4>Data Karyawan</h4> </div> <div class="card-body"> <table class="table table-sm table-bordered table-info"> <thead> <tr> <th>No</th> <th>Nama</th> <th>Jenis Kelamin</th> <th>Alamat</th> </tr> </thead> <tbody> <?php $no = 1; foreach ($karyawan as $karyawan) : ?> <tr> <td><?= $no++ ?></td> <td><?= $karyawan->nama; ?></td> <td><?= $karyawan->jenis_kelamin; ?></td> <td><?= $karyawan->alamat; ?></td> </tr> <?php endforeach ?> </tbody> </table> </div> </div> <div class="card"> <div class="card-header"> <h4>Data Karyawan WHERE Jakarta</h4> </div> <div class="card-body"> <table class="table table-sm table-bordered table-info"> <thead> <tr> <th>No</th> <th>Nama</th> <th>Jenis Kelamin</th> <th>Alamat</th> </tr> </thead> <tbody> <?php $no = 1; foreach ($karyawan_where as $karyawan_where) : ?> <tr> <td><?= $no++ ?></td> <td><?= $karyawan_where->nama; ?></td> <td><?= $karyawan_where->jenis_kelamin; ?></td> <td><?= $karyawan_where->alamat; ?></td> </tr> <?php endforeach ?> </tbody> </table> </div> </div> <div class="card"> <div class="card-header"> <h4>Data Karyawan WHERE IN "Jakarta , Bandung"</h4> </div> <div class="card-body"> <table class="table table-sm table-bordered table-info"> <thead> <tr> <th>No</th> <th>Nama</th> <th>Jenis Kelamin</th> <th>Alamat</th> </tr> </thead> <tbody> <?php $no = 1; foreach ($karyawan_where_in as $karyawan_where_in) : ?> <tr> <td><?= $no++ ?></td> <td><?= $karyawan_where_in->nama; ?></td> <td><?= $karyawan_where_in->jenis_kelamin; ?></td> <td><?= $karyawan_where_in->alamat; ?></td> </tr> <?php endforeach ?> </tbody> </table> </div> </div> </div> </body> <script src="http://localhost/indonetsource/bootstrap/js/jquery-3.5.1.min.js"></script> <script src="http://localhost/indonetsource/bootstrap/js/popper.min.js"></script> <script src="http://localhost/indonetsource/bootstrap/js/bootstrap.min.js"></script> </html>
jalankan program pada browser
akses : http://localhost/indonetsource/karyawan
Output Program menampikan semua data karyawan
Output Program Menampilkan data karyawan dengan where
Bagian terakhir Output Program Menampilkan data karyawan dengan where in