Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class m_pesanan extends CI_Model {
- private $table_penghubung = 'menu_pesanan';
- // ceritanya di input parameter $id_pesanan = 17, $new_menu2nya = array(2,3,4,6,7)
- public function updateMenu2nya($id_pesanan, array $new_menu2nya) {
- $current_menu_pesanan = $this->db->where('id_pesanan', $id_pesanan)->get($this->table_penghubung)->result();
- $current_menu2nya = array();
- // pluck row object dari current_menu_pesanan ke array current_menu2nya
- foreach($current_menu_pesanan as $menu_pesanan) {
- $current_menu2nya[] = $menu_pesanan->id_menu;
- }
- /*
- * gambaran saat ini:
- * $current_menu2nya = array(1,2,3,4) << ceritanya
- * $new_menu2nya = array(2,3,4,6,7)
- * ------------------------------------------------------------------
- * itu berarti kita harus delete si id_menu 1, dan nambahin id_menu 6 dan 7
- * ke table penghubung yang id_pesanannya = 17,
- * caranya bisa pake array_diff()
- */
- $daftar_id_menu_yang_harus_di_delete = array_diff($current_menu2nya, $new_menu2nya);
- $daftar_id_menu_yang_harus_di_tambahin = array_diff($new_menu2nya, $current_menu2nya);
- // delete daftar id_menu yang harus di delete
- $this->db
- ->where('id_pesanan', $id_pesanan)
- ->where_in('id_menu', $daftar_id_menu_yang_harus_di_delete);
- ->delete($this->table_penghubung);
- // daftarin id_menu baru yang belum ditambahin
- foreach($daftar_id_menu_yang_harus_di_tambahin as $id_menunya) {
- $this->db->insert($this->table_penghubung, array(
- 'id_pesanan' => $id_pesanan,
- 'id_menu' => $id_menunya
- ));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement