- 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
- ABAC
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->dbParameter
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 NULLIS NOT NULL- dan seterusnya.
$operator
Nilai operator yang dilakukan terhadap kondisi WHERE selanjutnya, berikut ini nilai yang cocok untuk nilai dari parameter ini.
ANDOR
$operator_relational
Nilai operator relasional yang dilakukan terhadap kondisi filter dengan nama kolom.
=!=atau<>><>=<=likelike%%like%like%ataulike%%notlikenotlike%%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{
public $table = 'd_order';
public $table_alias = 'dor';
public $table2 = 'd_order_detail';
public $table2_alias = 'dod';
public $table3 = 'c_produk';
public $table3_alias = 'cp';
public function __construct(){
parent::__construct();
$this->db->from($this->table,$this->table_alias);
}
public function getByOrderId($d_order_id){
$this->db->from($this->table,$this->table_alias);
$this->db->join($this->table2, $this->table2_alias, 'id', $this->table_alias, 'd_order_id', '');
$this->db->where_as("$this->table_alias.d_order_id", $this->db->esc($d_order_id));
return $this->db->get();
}
public function getDetailJasaForDrDashboard(){
$this->db->from($this->table, $this->table_alias);
$this->db->join($this->table2, $this->table2_alias, 'id', $this->table_alias, 'd_order_id', '');
$this->db->join($this->table3, $this->table3_alias, 'id', $this->table_alias, 'c_produk_id', '');
$this->db->where_as("$this->table2_alias.utype",$this->db->esc('order_selesai'));
$this->db->where_as("$this->table3_alias.jenis_paket", 'IS NULL');
$this->db->where_as("$this->table_alias.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;