Metode Where

Metode where digunakan untuk melakukan penyaringan data dengan kondisi tertentu. Metode ini akan mengeksekusi perintah SQL WHERE. Metode ini juga bagian dari Query Builder.

Bentuk Umum

Berikut ini adalah bentuk umum metode where dari properti $db di kelas SENE_Model .

$this->db->where(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 terdiri dari 2 parameter wajib yaitu $column_name dan $filter_value. Nilai parameter ini otomatis di escape.

$column_name

Dapat berisi nama kolom yang akan di filter. Nilai parameter ini otomatis di escape.

$filter_value

Nilai filter terhadap kolom terpilih.

$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% atau like%%
  • notlike
  • notlike%
  • %notlike
  • %notlike% atau notlike%%

$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 pada file d_order_model.php.

<?php
class D_Order_Model extends SENE_Model{
  var $tbl = 'd_order';
  var $tbl_as = 'dor';

  public function __construct(){
    parent::__construct();
    $this->db->from($this->tbl,$this->tbl_as);
  }

  public function getById($id){
    $this->db->where("id",$id,"AND","=",0,0);
    return $this->db->get_first();
  }
  public function getNotCancelled(){
    $this->db->where("order_status","order_cancel","AND","<>",0,0);
    return $this->db->get();
  }
  public function getCancelByUser($b_user_id){
    $this->db->where("order_status","order_cancel","AND","like",0,0);
    $this->db->where("b_user_id",$b_user_id,"AND","=",0,0);
    return $this->db->get();
  }
  public function getAllCancelRefund(){
    $this->db->where("order_status","order_cancel","AND","=",0,0);
    $this->db->where("is_refund", 1,"OR","=",1,0);
    $this->db->where("is_refund_closed", 1,"OR","=",0,1);
    return $this->db->get();
  }
}

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::getById(112) --
SELECT * FROM `d_order` WHERE `id` = 112;

-- result from executing D_Order_Model::getNotCancelled() --
SELECT * FROM `d_order` WHERE `order_status` != 'cancel';

-- result from executing D_Order_Model::getCancelByUser(2125) --
SELECT * FROM `d_order` WHERE `order_status` LIKE 'cancel' AND `b_user_id` = 2125;

-- result from executing D_Order_Model::getAllCancelRefund() --
SELECT * FROM `d_order` WHERE `order_status` = "order_cancel" AND ( `is_refund` = 1 OR `is_refund_closed` = 1);