Metode Between

Between adalah sebuah metode dari properti $db yang ada didalam kelas SENE_Model untuk digunakan sebagai Query Builder. Kegunaan dari metode ini adalah untuk memfilter data yang kompatibel dengan perintah BETWEEN pada SQL.

Bentuk Umum

Berikut ini adalah bentuk umum dari metode between dari properti $db yang ada di dalam kelas SENE_Model.

$this->db->between(string $column_name, string $value_from, string $value_to): $this->db

Parameter

Metode ini memiliki 3 parameter wajib yaitu $column_name, $value_from, dan $value_to

$column_name

Nilai dari $column_name dapat berisi nama kolom yang diperlukan untuk memfilter data dari tabel.

$value_from

Rentang nilai yang diperlukan untuk dicocokkan dengan $column_name.

$value_to

Rentang nilai yang diperlukan untuk dicocokkan dengan $column_name.

Contoh Penggunaan

Berikut ini adalah contoh penggunaan metode between pada sebuah kelas model.

<?php
class Blog_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);
  }

  /**
  * Get blog post by creation date (not date time)
  * @param  string  $sdate  		String date format YYYY-MM-DD
  * @param  string  $edate  		String date format YYYY-MM-DD
  * @return array           		Result array of object
  */
  public function getByDateRange($sdate,$edate){
    if (strlen($sdate)==10 && strlen($edate)==10) {
      $this->db->between("$this->tbl_as.cdate", "'$sdate'", "'$edate 23:59:59'");
    }elseif(strlen($sdate)==10 && strlen($edate)!=10){
      $this->db->where_as("$this->tbl_as.cdate", "'$sdate'", "AND", '<=');
    }elseif(strlen($sdate)!=10 && strlen($edate)==10){
      $this->db->where_as("$this->tbl_as.cdate", "'$edate'", "AND", '>=');
    }
    return $this->db->get();
  }

  /**
  * Get blog post by publish date time
  * @param  string  $sdate  		String date format YYYY-MM-DD
  * @param  string  $edate  		String date format YYYY-MM-DD
  * @return array           		Result array of object
  */
  public function getByDateTimeRange($sdate,$edate){
    if (strlen($sdate)==10 && strlen($edate)==10) {
      $this->db->between("$this->tbl_as.pubdt", "('$sdate 00:00:00')", "('$edate 23:59:59')");
    }elseif(strlen($sdate)==10 && strlen($edate)!=10){
      $this->db->where_as("$this->tbl_as.pubdt", "('$sdate 00:00:00')", "AND", '<=');
    }elseif(strlen($sdate)!=10 && strlen($edate)==10){
      $this->db->where_as("$this->tbl_as.pubdt", "('$edate 23:59:59')", "AND", '>=');
    }
    return $this->db->get();
  }
}

Info

Metode mendukung metode berantai (Chaining Method) Query Builder lainnya, karena mengembalikan nilai objek (return object) yang sama dengan $this->db di dalam kelas Model.