1

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

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

    ---+--------+--------+---------
    编号 | p_id | 颜色 | 随机的
    ---+--------+--------+---------
     1 | 1 | 红色 | 400
     2 | 1 | 绿色 | 400
     3 | 1 | 橙色 | 400
     4 | 2 | 绿色 | 200
     5 | 2 | 蓝色 | 200
    ---+--------+--------+---------

我正在使用这样的表格:

    产品编号 | 颜色 | 随机的
    -------------+------------------------------------------------ -+----------
    [产品 1 [v] | [+]红色 [+]绿色 [+]橙色 [o]蓝色 | [400]
    -------------+------------------------------------------------ -+----------

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

但是每次我发布表格时,它都会像这样插入:

    ---+--------+--------+---------
    编号 | p_id | 颜色 | 随机的
    ---+--------+--------+---------
     1 | 1 | 红色 | 400
     2 | 1 | 绿色 |   
     3 | 1 | 橙色 |   
    ---+--------+--------+---------

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

4

2 回答 2

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

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

于 2013-06-13T09:05:05.053 回答
0

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

INSERT INTO `shirts`(`p_id`, `colors`, `random`) VALUES (1, 'red', 400), (1, 'green', 400), (1, 'orange', 400);
于 2013-06-13T08:30:19.130 回答