如何使用codeigniter防止每个父级的重复子记录到数据库?

时间:2016-09-24 06:35:31

标签: php mysql codeigniter

我在mysql中有产品变体表,我想防止每个父产品ID的重复子记录:

-----------------------------------------------------
id | product id | category id | variant_value_id' | title
----------------------------------------------------
1  | 11          | 2          | 7 
2  | 11          | 3          | 7           
这是我的mysql表结构。 我希望每个类别ID都有唯一的变体ID。 这是我的控制器

foreach($this->input->post('product_variant') as $value){
                        $variant_data = array(
                            'product_id'        => $id,
                            'category_id'       => $this->input->post('product_category'),
                            'variant_group_id'  => $this->Product_model->get_variant_group_by_variant_id($value)[0]->group_id,
                            'variant_value_id'  => $value,
                            'product_variant_title' => $this->input->post('product_name').' '.$this->Product_model->get_variant_group_by_variant_id($value)[0]->value,
                            'mrp_price'         => '',
                            'price'             =>'',
                            'slug'              => url_title($this->input->post('product_name').'-'.$this->Product_model->get_variant_group_by_variant_id($value)[0]->value, 'dash', true),
                            'status'            =>'',
                        );
                        if($this->Product_model->add_product_variant($variant_data)){
                            $this->session->set_flashdata('product_variant_added', 'Product Variant Created Succesfully');
                        }
                    }

请帮忙。如果需要更多信息,我会提供

1 个答案:

答案 0 :(得分:1)

如果你想防止重复的productId,那么使用以下我的意思是做一个检查:

$q = $this->db->select('ProductName')
     ->from('Table')
     ->where(array('ProductId' => $ProductId, 'variant_value_id' => $variant_value_id))->get(); //Select query to check the productId

    if($q->num_rows() == 0){ //Finally checks if the Id doesn't exist
    //Insert goes here
}
else
{
  //Already exists
}