2017-07-05 57 views
0

MyController.php如何在新購買時更新庫存? MySQL和PHP,笨

public function save_order() 
{ 

    $order = array( 
     'createdBy'=>$this->vendorId, 
     'createdDtm'=>date('Y-m-d H:i:s') 
    );  

    $ord_id = $this->transaction_model->insert_order($order); 

    if ($cart = $this->cart->contents()): 
     foreach ($cart as $item): 
      $order_detail = array(
       'transactionId'   => $ord_id, 
       'productId'  => $item['id'], 
       'quantity'  => $item['qty'], 
       'price'   => $item['price'] 
      );  


      $this->transaction_model->insert_order_detail($order_detail); 
     endforeach; 
    endif; 

    redirect('transactionListing'); 
} 

transaction_model.php

public function insert_order($data) 
{ 
    $this->db->insert('tbl_transaction', $data); 
    $id = $this->db->insert_id(); 
    return (isset($id)) ? $id : FALSE; 
} 

public function insert_order_detail($data) 
{ 
    $this->db->insert('tbl_detailtransaction', $data); 

    $this->db->update('tbl_product', 'quantity', 'quantity' - $data->quantity, 'productId', $data->productId); 
} 

我想要做的是,每次新的購買,則,該產品的數量與更新新的價值。我寫的代碼的問題是產品的數量更新爲零值。你們能給我一隻手嗎?謝謝。

+1

[更新查詢增量字段加1個笨](可能的重複https://stackoverflow.com/questions/12904308/update-query-increment-field-plus-1- codeigniter) –

+0

你不會使用where子句來完成基本更新 –

回答

0

試試這個:

$this->db->set("quantity", "`quantity` - $data->quantity", FALSE); 
$this->db->update("tbl_product"); 
+0

謝謝,但它不起作用。遇到PHP錯誤 嚴重性:通知 消息:嘗試獲取非對象的屬性 –

+0

然後,我嘗試將$ data-> quantity更改爲$ data ['quantity'],結果爲Parse error:syntax error ,意外的''(T_ENCAPSED_AND_WHITESPACE),預期標識符(T_STRING)或變量(T_VARIABLE)或編號(T_NUM_STRING) –

+0

嘗試更新的答案。數量'單引號。 – Shihas