Sebuah aplikasi web dibuat biasanya memiliki fasilitas untuk update insert dan delete data. Pada artikel ini mari kita bahas salah satu dari fasilitas tersebut yaitu update. Di Codeigniter untuk membuat update dapat menggunakan syntax di bawah ini:
1 2 3 4 5 6 7 | $data = array( 'nama' => $nama, 'jenis_kelamin' => $jenis_kelamin, 'alamat' => $alamat ); $this->db->where('id', $id); $this->db->update('nama_tabel', $data); |
Data update di atas adalah contoh update data dalam bentuk array. Perintah tersebut saat dijalankan memiliki kesamaan dengan query sql di bawah ini:
1 | UPDATE nama_tabel SET nama='$nama', jenis_kelamin='$jenis_kelamin', alamat='$alamat' WHERE id = $id |
Selain menggunakan cara di atas kita juga dapat melakukan update data di codeigniter dengan menggunakan perintah $this-db->set().
1 2 3 4 5 | $this->db->set('nama', $nama); $this->db->set('alamat', $alamat); $this->db->set('jenis_kelamin', $jenis_kelamin); $this->db->where('id', $id); $this->db->update('nama_tabel'); |
Update di atas memiliki fungsi yang sama dengan script yang kita tuliskan di awal tadi.
Kedua bentuk penulisan update yang telah di buat di atas dapat di tulis di controller saja. Meskipun untuk hal yang berkaitan dengan query data sebaiknya ditulis di model tetapi dalam prakteknya banyak penerapan untuk query update ini di selesaikan di controller saja.
Contoh penggunaan function update di controller
1 2 3 4 5 6 7 8 9 10 11 | public function update_data($id){ $nama = $this->input->post('nama');; $alamat = $this->input->post('alamat'); $jenis_kelamin = $this->input->post('jenis_kelamin'); $this->db->set('nama', $nama); $this->db->set('alamat', $alamat); $this->db->set('jenis_kelamin', $jenis_kelamin); $this->db->where('id_siswa', $id); $this->db->update('siswa'); $this->load->view('view_siswa',$data); } |
Data yang di update adalah data siswa dengan input data berupa nama, alamat dan jenis kelamin. Teman – teman dapat menggunakan set ataupun array.
Demikian contoh function update data di codeigniter. Selanjutnya dalam pembuatan update terkadang juga diperlukan update dalam jumlah banyak atau multiple data.
Mari kita lanjutkan dengan update multiple…..
Update Multiple Data di Codeigniter
Salah satu bentuk update yang dapat terjadi dalam proses manipulasi data adalah update multi atau multiple update. Pada contoh sebelumya kita telah memabahas tentang insert multiple data. Selanjutnya dalam artikel update ini kita tambahkan dengan menjelaskan penggunaan update multiple.
Data yang digunakan dalam update multi berbentuk array dan diinput ke database dalam satu proses. Untuk membuat update multiple data, codeigniter telah menyeiakan update_batch(). Bentuk penggunaanya adalah seperti berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $data = array( array( 'id_siswa =>'1' 'nama' => 'Ade Kurniawwan' , 'alamat' => 'Padang' , 'jenis_kelamin' => 'Laki-laki' ), array( 'id_siswa' => '2' , 'nama' => 'Indonetsource' , 'alamat' => 'Bandung' , 'date' => 'Laki-laki' ) ); $this->db->update_batch('siswa', $data, 'id_siswa'); |
Pada script di atas kita melakukan update arrray $data yang terdiri atas 2 data array. Dengan mengunakan update batch codeigniter, maka saat dilakukan proses update ke 2 data array tersebut akan terupdate dalam satu kali proses submit.
Penerapan update_batch()
Dalam penerapan update_batch ada beberapa hal yang harus di perhatikan seperti berikut :
1. Untuk menggunakan update_batch data yang dimasukkan di view adalah array sehingga untuk name input data di set sebagai array <input type="text" name="nama[]">
2. Di controller data array yang telah di submit dari view perlu di foreach agar formatnya sesuai dengan penggunaan update batch.
3. Penulisan update_batch di sebuah function controller dapat menjadi seperti di bawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public function update_siswa(){ $id_siswa= $this->input->post('id_siswa'); $nama = $this->input->post('nama'); $jenis_kelamin = $this->input->post('jenis_kelamin'); $alamat = $this->input->post('alamat'); $result = array(); foreach ($id_siswa as $key => $val) { $result[] = array( 'id_bm' => $id_siswa[$key], 'nama' => $nama[$key], 'jenis_kelamin' => $jenis_kelamin[$key], 'alamat' => $alamat[$key] ); } $this->db->update_batch('siswa', $result, 'id_siswa'); } |
Demikianlah cara penggunaan update dan update_batch di codeigniter.