无法将针对id的多个数据插入到mySQL表中的多个字段中?

时间:2013-06-13 08:13:17

标签: php mysql cakephp

场景:我的PHP页面中有一个表单,将数据插入到mySQL数据库中。

假设,对于每种类型的T恤,都有颜色变化,尺寸变化和其他类似的。所以在我的数据库中,我想存储这样的数据:


    ---+------+--------+---------
    id | p_id | colors | random
    ---+------+--------+---------
     1 |   1  |   red  |   400
     2 |   1  |  green |   400
     3 |   1  | orange |   400
     4 |   2  |  green |   200
     5 |   2  |  blue  |   200
    ---+------+--------+---------

我正在使用这样的表格:


    Product id     | color                             | random
    ---------------+-----------------------------------+----------
    [Product 1 [v] | [+]Red [+]Green [+]Orange [o]Blue | [    400]
    ---------------+-----------------------------------+----------

图例: [+]& [o]是复选框,[v]是下拉菜单,[ ]是文本框。

但每次发布表单时,都会这样插入:


    ---+------+--------+---------
    id | p_id | colors | random
    ---+------+--------+---------
     1 |   1  |   red  |   400
     2 |   1  |  green |   
     3 |   1  | orange |   
    ---+------+--------+---------

如何在所有三行中插入“随机”数字?

2 个答案:

答案 0 :(得分:3)

我想我理解了你的问题并发布了这个解决方案。请在数组中选中颜色复选框字段,如:

<input type="checkbox" name="color[]" value="Red"/>Red
<input type="checkbox" name="color[]" value="Green"/>Green
<input type="checkbox" name="color[]" value="Orange"/>Orange
<input type="checkbox" name="color[]" value="Blue"/>Blue

现在,如果您发布表单,您将获得一系列颜色,只选中复选框。例如,如果您选中了红色和橙色,则数组将类似于:

Array ([color] => Array ( [0] => Red [1] => Orange ))

现在,您可以在此处运行循环以在数据库中插入值。

<?php
    let,$random=$_POST['random']; 
        $p_id=$_POST['p_id'];
        $colors=$_POST['color'];

    foreach($colors as $each)
    {
        INSERT INTO `shirts`(`p_id`, `colors`, `random`) VALUES ($p_id, $each, $random);
    }
?> 

希望它会对你有所帮助。如果你遇到任何问题,请问我。

答案 1 :(得分:0)

如果您可以发布用于插入数据的MySQL语句,那将非常有用。 规范的方式是:

INSERT INTO `shirts`(`p_id`, `colors`, `random`) VALUES (1, 'red', 400), (1, 'green', 400), (1, 'orange', 400);