MyController.phpComment mettre à jour l'inventaire lorsqu'un nouvel achat est effectué? MySQL, PHP, Codeigniter
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);
}
Ce que je suis en train de faire est, à chaque fois que se fait un nouvel achat, la quantité du produit mis à jour avec le nouvelle valeur. Le problème avec le code que j'ai écrit est la quantité du produit mis à jour à 0 valeur zéro. Peux-tu me donner un coup de main? Je vous remercie.
double possible de [champ incrément de mise à jour de requête plus 1 CodeIgniter] (https://stackoverflow.com/questions/12904308/update-query-increment-field-plus-1- codeigniter) –
vous n'utilisez pas la clause where sur laquelle la mise à jour de base sera faite –