2017-01-07 4 views
1

Я работаю над одной страницей продукта. Есть таблица colors в базе данных, чтобы определить цвета каждого продукта. Это похоже на это;Вставка нескольких входных значений в разные строки в другую таблицу

| key | product_id | color | 
 
+-----+------------+-------+ 
 
| 1 |   4 | black | 
 
| 2 |   7 | red | 
 
| 3 |   8 | blue | 
 
| 4 |   8 | black | 
 
+-----+------------+-------+

вставить продукт через productController.php. Нет проблем с этим. Более того, я хочу вставлять цвета в свою таблицу с одинаковым идентификатором автоматического увеличения. Как вы можете себе представить, для каждого цвета в форме есть несколько входов. Каков правильный метод и какие функции я должен использовать?

Упрощенный вид формы ниже.

<form> 
 
    <div class="control-group"> 
 
    <label class="control-label">Product Name</label> 
 
    <div class="controls"> 
 
     <input type="text" name="productname" /> 
 
    </div> 
 
    </div> 
 
    <div class="control-group"> 
 
    <label class="control-label">Colors</label> 
 
    <div class="controls" id="color"> 
 
     <input type="text" name="colors[]" /> 
 
     <a href="javascript:void(0)" class="addcolor"> + Add</a> 
 
    </div> 
 
    </div> 
 
    <div class="form-actions"> 
 
    <button type="submit" class="btn btn-success">Add Product</button> 
 
    </div> 
 
</form>

ответ

1

Попробуйте это ...

Вставив в таблицу продуктов, получить последний вставки идентификатора

$last_id = $db->insert_id; 

$sql=""; 
$colours=$_POST['colours']; 
foreach($colours as $colour) 
{ 
    $sql.="INSERT INTO colours_table (product_id,color) values ('$last_id','$color');" 
} 

$db->query($sql); 

Конечно принять все меры предосторожности против инъекции SQL

0

Нормализовать Структура БД г как

color_master 

| colorId | colorName | 
+---------+-----------+ 
|  1 | black | 
|  2 | red  | 
|  3 | blue | 
+---------+-----------+ 

product_color 

| product_color_id | product_id | color_id | 
+------------------+------------+----------+ 
|  1   |  4  | 1  | 
|  2   |  7  | 2  | 
|  3   |  8  | 3  | 
|  4   |  4  | 3  | 
+------------------+------------+----------+ 

Я предлагаю вам использовать <select> с multiple вариант выбора.

<select name="color[]" multiple></select> 

на PHP конца вы получите массив цвета в посте, а затем вы можете вставить в вашей базе данных

+0

Спасибо за совет! Я должен использовать текстовые входы, так как будет неограниченное количество цветов. На самом деле «цвет» - всего лишь пример из множества входов. – Melih

Смежные вопросы