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

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

问题描述:

我想插入多个选中的复选框值插入到一列中,当我搜索它时,我发现用逗号附加值并插入表 例如:在MYSQL数据库中插入多个复选框值

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

如果用户选择1 3 4,则附加逗号如1,3,4并插入表中。用逗号附加 不是有效的方法,有没有其他方法?请帮我 在此先感谢

你不应该把多个值一列这将违反数据库的第一narmal形式:http://en.wikipedia.org/wiki/First_normal_form

只是一列,每布尔型字段哟需要。

+0

这是另一个不错的主意,是行不通的,如果可能的选项数量可以在未来增加虽然... – 2012-02-15 09:28:00

+0

是的,我有40个复选框现在 – 2012-02-15 09:34:06

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

如何二进制数 例如:

意思

checkbox 1 : true 
checkbox 2 : false 
checkbox 3 : true 
checkbox 4 : false 

在分贝它将被存储像图5(二进制0101十进制值)

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

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

假设 表将成为喜欢ORDER_ID 33 TABLEA

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])"); 
} 
+0

纳文,我不认为用逗号和附加分裂是有效的方法 – 2012-02-15 09:46:43

+0

您不会将表格中的值插入为“1,3,4”,我们将为每个值创建一个新条目。 – 2012-02-15 09:53:06

+0

+1用于详细描述我所建议的;)最佳解决方案imo – 2012-02-15 10:40:12