我正在处理单个产品页面。数据库中有colors
表来定义每个产品的颜色。它看起来像这样;
| key | product_id | color |
+-----+------------+-------+
| 1 | 4 | black |
| 2 | 7 | red |
| 3 | 8 | blue |
| 4 | 8 | black |
+-----+------------+-------+
我通过productController.php
插入产品。没问题。此外,我想使用相同的自动增量ID将颜色插入到自己的表中。可以想象,表单中的每种颜色都有多个输入。什么是正确的方法,我应该使用哪些功能?
表格的简化视图如下。
<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>
答案 0 :(得分:1)
试试这个......
INSERTING into products表后,获取最后一个插入ID
$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注入的预防措施
答案 1 :(得分: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结束时,您将在post中获得Color数组,然后可以在数据库中插入