- Seme Framework
- versi 4.0.3 (ID)
- Persyaratan
- Download & Install
- Pengaturan
- Tutorial
- Perutean URI
- Konstanta
- Variabel Global
- Model
- View
- Controller
- Library
- CLI (command line interface)
- Core
Metode Where AS
Metode where_as
digunakan untuk melakukan penyaringan data dengan kondisi tertentu tapi tidak otomatis di Escape.
Metode ini akan mengeksekusi perintah SQL WHERE
.
Metode ini juga bagian dari Query Builder
.
Bentuk Umum
Berikut ini adalah bentuk umum metode where_as
dari properti $db
di kelas SENE_Model .
$this->db->where_as(string $column_name, mixed $filter_value [, string $operator = 'AND' [, string $relation_operator = '=' [, int $open_bracket = 0 [, int $close_bracket = 0 ]]]]): $this->db
Parameter
Metode where_as terdiri dari 2 parameter wajib yaitu $column_name dan $filter_value.
$column_name
Dapat berisi nama kolom yang akan di filter.
Nilai parameter ini tidak otomatis di escape
. Berikut ini adalah contoh isi nilai dari parameter ini:
DATE(column_name)
COALESCE(column_name, 0)
- dan seterusnya.
$filter_value
Nilai filter terhadap kolom terpilih.
Bisa di isi juga dengan kombinasi nilai juga function bawaan dari database.
Nilai parameter ini tidak otomatis di escape
. Berikut ini adalah contoh isi nilai dari parameter ini:
NOW()
CURRENT_DATE()
DATE('2021-08-09')
IS NULL
IS NOT NULL
- dan seterusnya.
$operator
Nilai operator yang dilakukan terhadap kondisi WHERE
selanjutnya, berikut ini nilai yang cocok untuk nilai dari parameter ini.
AND
OR
$operator_relational
Nilai operator relasional yang dilakukan terhadap kondisi filter dengan nama kolom.
=
!=
atau<>
>
<
>=
<=
like
like%
%like
%like%
ataulike%%
notlike
notlike%
%notlike
%notlike%
ataunotlike%%
$open_bracket
Menambahkan kurung buka pada awal perintah SQL
sebelum isi perintah kondisi WHERE
selanjutnya.
$close_bracket
Menambahkan kurung tutup pada akhir perintah SQL
sebelum isi perintah kondisi WHERE
selanjutnya.
Contoh penggunaan
Berikut ini adalah contoh penggunaan metode where_as pada file d_order_model.php
.
<?php
class D_Order_Model extends SENE_Model{
var $tbl = 'd_order';
var $tbl_as = 'dor';
var $tbl2 = 'd_order_detail';
var $tbl2_as = 'dod';
var $tbl3 = 'c_produk';
var $tbl3_as = 'cp';
public function __construct(){
parent::__construct();
$this->db->from($this->tbl,$this->tbl_as);
}
public function getByOrderId($d_order_id){
$this->db->from($this->tbl,$this->tbl_as);
$this->db->join($this->tbl2, $this->tbl2_as, 'id', $this->tbl_as, 'd_order_id', '');
$this->db->where_as("$this->tbl_as.d_order_id", $this->db->esc($d_order_id));
return $this->db->get();
}
public function getDetailJasaForDrDashboard(){
$this->db->from($this->tbl, $this->tbl_as);
$this->db->join($this->tbl2, $this->tbl2_as, 'id', $this->tbl_as, 'd_order_id', '');
$this->db->join($this->tbl3, $this->tbl3_as, 'id', $this->tbl_as, 'c_produk_id', '');
$this->db->where_as("$this->tbl2_as.utype",$this->db->esc('order_selesai'));
$this->db->where_as("$this->tbl3_as.jenis_paket", 'IS NULL');
$this->db->where_as("$this->tbl_as.sdate", 'IS NOT NULL');
return $this->db->get('',0);
}
}
Hasil Perintah SQL
Berikut ini adalah perintah SQL yang dihasilkan oleh metode yang ada pada contoh kelas D_Order_Model
.
-- result from executing D_Order_Model::getByOrderId(59) --
SELECT * FROM `d_order` dor JOIN d_order_detail dod ON dor.id = dod.d_order_id WHERE dod.`id` = 59;
-- result from executing D_Order_Model::getDetailJasaForDrDashboard() --
SELECT *
FROM `d_order` dor
JOIN d_order_detail dod ON dor.id = dod.d_order_id
JOIN c_produk cp ON cp.id = dod.c_produk_id
WHERE
dod.`utype` = "order_selesai"
AND cp.utype IS NULL
AND dor.sdate IS NOT NULL;