Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. class m_pesanan extends CI_Model {
  4.  
  5.     private $table_penghubung = 'menu_pesanan';
  6.  
  7.     // ceritanya di input parameter $id_pesanan = 17, $new_menu2nya = array(2,3,4,6,7)
  8.     public function updateMenu2nya($id_pesanan, array $new_menu2nya) {
  9.        
  10.         $current_menu_pesanan = $this->db->where('id_pesanan', $id_pesanan)->get($this->table_penghubung)->result();
  11.          
  12.         $current_menu2nya = array();
  13.        
  14.         // pluck row object dari current_menu_pesanan ke array current_menu2nya
  15.         foreach($current_menu_pesanan as $menu_pesanan) {
  16.             $current_menu2nya[] = $menu_pesanan->id_menu;
  17.         }
  18.  
  19.         /*
  20.          * gambaran saat ini:
  21.          * $current_menu2nya = array(1,2,3,4) << ceritanya
  22.          * $new_menu2nya = array(2,3,4,6,7)
  23.          * ------------------------------------------------------------------
  24.          * itu berarti kita harus delete si id_menu 1, dan nambahin id_menu 6 dan 7
  25.          * ke table penghubung yang id_pesanannya = 17,
  26.          * caranya bisa pake array_diff()
  27.          */
  28.  
  29.         $daftar_id_menu_yang_harus_di_delete = array_diff($current_menu2nya, $new_menu2nya);
  30.         $daftar_id_menu_yang_harus_di_tambahin = array_diff($new_menu2nya, $current_menu2nya);
  31.  
  32.         // delete daftar id_menu yang harus di delete
  33.         $this->db
  34.         ->where('id_pesanan', $id_pesanan)
  35.         ->where_in('id_menu', $daftar_id_menu_yang_harus_di_delete);
  36.         ->delete($this->table_penghubung);
  37.  
  38.         // daftarin id_menu baru yang belum ditambahin
  39.         foreach($daftar_id_menu_yang_harus_di_tambahin as $id_menunya) {
  40.             $this->db->insert($this->table_penghubung, array(
  41.                 'id_pesanan' => $id_pesanan,
  42.                 'id_menu' => $id_menunya
  43.             ));
  44.         }
  45.     }
  46.  
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement