在MYSQL数据库中插入多个复选框值

时间:2012-02-15 09:24:54

标签: php mysql mysqli

我想插入多个选中的复选框值以插入一列, 当我搜索它时,我发现用逗号追加值并插入表中 例如:

   ID      Value
-------------------
    1        Veg
    2        Non-Veg
    3        Chinese
    4        Italian

如果用户选择1 3 4,则用逗号(如1,3,4)附加并插入表格。 用逗号附加不是有效的方式,还有其他方法吗?请帮我 提前致谢

4 个答案:

答案 0 :(得分:1)

二进制数怎么样?  例如:

0101

意思

checkbox 1 : true
checkbox 2 : false
checkbox 3 : true
checkbox 4 : false
在db中

它将被存储为5(二进制0101的十进制值)

唯一的问题是,如果您想搜索用户,例如复选框3已选中。

在这种情况下,只需为每个复选框用户检查添加行。搜索复选框时,您将获得带有复选框ID的多行。我相信这实际上是最好的选择。

答案 1 :(得分:1)

假设 table就像order_id 33一样 表A

order_id    item_id
33            1
33            3
33            4

你可以通过内部联接获得价值 上面的表和项目,值表

(select * from tableA inner join tableB on tableA.item_id=tableB.item_id)

tableB的

item_id      value
 1            Veg
 2            Non-Veg
 3            Chinese
 4            Italian

试试这个

$order_id=33;
$ids=$_GET['ids']; // $ids= 1,3,4
$ids_Split= explode(",", $ids);
$cnt=count($ids_Split);
for($i=0;$i<$cnt;$i++)
{
mysql_query("insert into hotel_table(order_id,item_id) 
values ($id, $ids_Split[$i])");
}

答案 2 :(得分:0)

您不应该在一列中放置多个值,这会违反数据库的第一个叙述形式:http://en.wikipedia.org/wiki/First_normal_form

只需要每个布尔字段的列。

答案 3 :(得分:0)

创建链接表,您可以在其中追加多行(每个选择1个)将是我想到的第一件事......