2016-09-24 5 views
1

я имею продукт вариант таблицу в MySQL, я хочу, чтобы предотвратить дублированный ребенок запись для каждого идентификатора родительского продукта:Как предотвратить дублирование дочерней записи в базе данных для каждого родителя с помощью codeigniter?

----------------------------------------------------- 
id | product id | category id | variant_value_id' | title 
---------------------------------------------------- 
1 | 11   | 2   | 7 
2 | 11   | 3   | 7   

это моя MySQL структура таблицы. Я хочу иметь уникальный идентификатор варианта для каждого идентификатора категории. это мой контроллер

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'); 
         } 
        } 

Пожалуйста, помогите. если нужна больше информации, я обеспечу

+0

Так что вы хотите, чтобы предотвратить повторяющийся PRODUCTID? –

+0

да, но для каждого идентификатора категории. Я хочу, чтобы поле variant_value_id было уникальным для каждого идентификатора категории. например, если у меня есть мобильная, электронная, ткань категории. теперь я вариант цвета в каждой категории, но он не должен дублироваться в мобильной или любой другой категории. – Vikas

+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 
} 
+0

Спасибо. оно работает. – Vikas

+0

Добро пожаловать. Рад узнать, что сработало. –

+0

Не могли бы вы помочь с другой проблемой: http://stackoverflow.com/questions/39676108/how-can-i-create-product-variant-in-codeigniter – Vikas