2013-06-13 23 views
1

场景:我在我的PHP页面中有一个表单,将数据插入mySQL数据库。不能在一个表中的多个字段中插入多个数据与一个ID在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 | 
    ---+------+--------+--------- 

我怎样才能将“随机”数到所有三排?

+0

发布一些代码或者我们猜测你的代码 –

+0

代码不完全匹配场景,但[这里](http://pastebin.com/FA83nznK)是他们。 –

回答

3

我想我明白你的问题,并发布此solution.Put你的颜色复选框场像一个数组:

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

希望它能帮助你。请问问你是否面临任何问题。

+0

它奇妙地工作。非常感谢。 –

+0

感觉很棒,它帮助你。 – ABorty

0

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

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

这是一个原始的SQL查询。我正在使用PHP表单。 :) –

相关问题