Custom SQL Query di CakePHP


Walaupun CakePHP telah menyediakan fungsi general untuk me-retrieve data menggunakan $this->NamaModel->find('all'), tetapi tidak dapat dipungkiri juga bahwa kita membutuhkan menulis script sql syntaks secara hardcode. Contohnya misalnya kita ingin membuat suatu rekap/report dimana keterkaitan antara table sangat kompleks. Tentu saja lebih simple untuk menuliskan sql querynya bukan??? Sebelum memutuskan untuk menggunakan custom sql query didalam CakePHP, sebaiknya pikirkanlah terlebih dahulu apakah bisa diselesaikan dengan fungsi find('all') atau tidak. Kalau tidak bisa, yo wes barulah kita gunakan syntaks custom sql query….

Skenarionya adalah sebagai berikut : Saya memiliki 1 buah model dengan nama Pain, 1 buah controller dengan nama PainsController dan 1 buah view yaitu rekap. Didalam model akan saya tambahkan fungsi yang saya inginkan, yaitu rekap() dan didalam controllernya saya juga akan menambahkan fungsi rekap(). karena saya memiliki fungsi rekap() didalam controller maka saya tentu saja harus membuat views dengan nama file rekap.ctp. Step by stepnya sebagai berikut :

1. Tambahkan fungsi didalam model Pain

function rekap(){
    $results = $this->query("Select * From XXX WHERE XXX...");
    return $results;
}

2. Tambahkan fungsi didalam PainsController

function rekap(){
    $this->set('rekap', $this->Pain->rekap());
}

3. Proses data yang didapat didalam view rekap.ctp

<?php
  foreach ($rekap as $i_rekap):
    echo $i_rekap['...']['...'];
  endforeach;          
?>

Cukup jelas dan simple bukan???😀

6 thoughts on “Custom SQL Query di CakePHP

  1. Mas, di view rekap.ctp pada baris echo $i_rekap..
    yang titik-titik itu diisi apa ya??
    aku ga keluar nih data nya. muncul pesan errornya Undefined index: no [APP\View\Assteks\add.ctp, line 4]

    • Titik2nya diisi indek dari array $i_rekap. Coba $i_rekap di print_r terlebih dahulu, biar terlihat data yang akan ditampilkan.

  2. kak gmana klau rekap data yang lebih rumit..
    aku punya tabel siswa yg terdiri dari: NIS, Nama, Tahun Masuk, Jenis Kelamin,…

    nah aku mw buat rekap data jumlah siswa pertahun berdasarkan jenis kelamin. Hasil akhirnya kira2 seperti ini:
    ————————————————————————————————————————-
    No | Tahun Masuk | L(Laki2) | P(Perempuan) | Jumlah Keseluruhan |
    1 2010 20 15 35
    2 2011 30 20 50
    ————————————————————————————————————————
    Nah klu kasusnya gtu gmana ya kak???
    mhon bantuannya kak. ni email ku:
    liakawaii.san@gmail.com

    • Sepertinya didalam views, kita bisa memanggil suatu fungsi didalam controller dimana parameternya tahun masuk.
      Mungkin bisa menggunakan RequestAction dan Element didalam CakePHP. Mudah2an bisa membantu.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s