如何更新现有值

时间:2015-11-26 11:28:31

标签: php codeigniter

我正在创建一个API,我将product_id, Product_Sizequantityproduct_name插入名为product-info的数组中。

现在我想在product id已存在时更新其他值。 我在控制器中插入的代码:

   if(!empty($product_info1)){
    foreach ($product_info1 as $value) {
        $product_id = isset($value->product_id) ? $value->product_id : 0;
        $Product_Size = isset($value->Product_Size) ? $value->Product_Size : 0;
        $quantity = isset($value->quantity) ? $value->quantity : 0;
        $product_name = isset($value->product_name) ? $value->product_name : 0;

           if(  $ok = 1)
        $this->api_details_model->productinventory_track($product_id,$Product_Size,$quantity,$product_name);
         {

             $api_status="true";
             $api_message="Done";
         }
    // $this->api_details_model->checkProductid($product_id);

    }
   }

模型:

function productinventory_track($product_id,$Product_Size='',$quantity='',$product_name='')
{

        if($product_id>=0)
        {

            $data = array('product_name'=>$product_name,'size_id'=>$Product_Size,'stock_count'=>$quantity,'product_id'=>$product_id);

            if($this->db->insert('product_inventory', $data)){ return true; }else{ return false; }

        }

请告诉我更新的代码

1 个答案:

答案 0 :(得分:0)

控制器:

$productInfo = $this->db->api_details_model->get($product_id);

$productArray['product_name'] = 'yourValue';
$productArray['size_id']      = 'yourValue';
$productArray['stock_count']  = 'yourValue';

// Means that there is no product with that ID in the database
if($productInfo == null)
   $this->db->api_details_model->add($productArray);

// It was found an ID in the database
else
   $this->db->api_details_model->edit($product_id, $productArray);

模型中的功能:

public function add($data)
{
   $this->db->insert('product_inventory', $data);
}

public function edit($id, $data)
{
   $this->db->where('id', $id)
            ->update('product_inventory', $data);
}

public function get($id)
{
   $this->db->where('id', $id);

   return $this->db->get('product_inventory')->row();
}