一個表單中的資料新增到不同的資料表中

leeyongbard發表於2017-05-20

今天做了一個關於新增商品的功能模組,需要實現的功能也算是比較簡單的,但是在做到新增會員價格的時候遇到了一點滿麻煩,麻煩原因就是商品的基本資訊以及商品描述的資料新增同一張表中sp_goods  ,但是會員價格這個需要新增到另外一張表中sp_member_price 


那麼如何實現將同一個表單中的資料新增到兩張不同的資料表呢,先來看一下資料表:


sp_goods


sp_member_level


sp_member_price



一共有三張表,需要將會員價格的資料新增到會員表中,需要新增的資料有不同的會員等級所對應的不同商品的價格,

在這裡會員價格那個頁面的會員等級我是通過迴圈查詢展示出來的

程式碼如下:

<!--會員價格-->
  <div class="tab-pane" id="profile12">
   <volist name="memlevels" id="vo">
     <div class="form-group">
<label for="level_name" class="col-sm-2 control-label no-padding-right">{$vo.level_name}</label>
<div class="col-sm-6">
<input class="form-control" id="level_name" placeholder="" name="level_name[{$vo.id}]" type="text">
</div>
                                  </div>
</volist>


在這裡name值我使用的是陣列,但是陣列的鍵值我使用的是會員等級所對應的id值,

那麼新增的會員價格的資訊現在還差一個商品的id  ,但是再新增會員價格的同時也在新增商品的價格,如何能夠獲取到商品的價格呢?

在這裡我是用了tp的後置操作  程式碼如下:

// insert(鉤子函式)
   public function _after_insert(&$data,$options) {
  
  // 將會員價格新增到會員價格表中(sp_member_price)
  $memprice = D('memberPrice');
  $level_name = I('level_name');
       if($level_name) {
  foreach($level_name as $k=>$v) {
  if(trim($v) != '') {
  $memprice->add(
      array(
      'price' => $v,
  'level_id' => $k,
  'goods_id' => $data['id']
  )
  );
  }
  }
  }
   }


也就是先在商品新增之後再新增會員價格的資料,這樣就可以獲得商品的id值了,

然後在執行新增會員價格資訊的操作



相關文章