2011-10-03 66 views
0

如何将我的行输出到复选框组中并根据所检查项目的ID将它们插入到数据库中?复选框组与MYSQL的多重插入可实现?

因此,用户检查1,2,3,4,5,我将ID为1,2,3,4,5插入到myTable中。

我永远只处理了1 x $ MYVARIABLE INSERTS到目前为止..

+0

你能澄清你的问题?如果用户没有选中3,为什么还要插入3? – itsmeee

+0

是的,它是可以实现的。 – Mob

回答

1

MySQL有一个扩展插入语句。假设您的复选框的值存储在一个标准化的表,你会使用类似

INSERT INTO yourtable (checkboxID) VALUES ($id1), ($id2), ($id3), etc... 

这将产生一个新的纪录yourtable您指定的每个值。需要注意的是,你可以以同样的方式插入值的集合:

INSERT .... VALUES ($x, $y), ($a, $b), ($c, $d) etc... 

你必须建立价值观的自己,列表,他们周围的括号是必需的伸出的插入工作。你不能简单地做INSERT .... implode($_POST['checkboxes']类型的事情。

现在,如果您想在ID中的单个字段/记录中插入逗号分隔的ID列表,那么我强烈建议您不要。规范你的数据库并为这些值创建一个子表。

+0

该ID将被插入到一个链接表中,该链接表只保存ID。它基本上是属于Foo的ID列表。所以他们选择Foo,并选择添加到Foo的值。这些值的ID存储在一个链接表中,其中插入了Foo ID ...所以我想为每个选定的值添加Foo的ID。 – SMacFadyen

1

将您的复选框命名为数组,然后检查每个索引是否被选中时的提交。

例如:

<input type='checkbox' name=content[] value='1'>1 
<input type='checkbox' name=content[] value='2'>2 
<input type='checkbox' name=content[] value='3'>3 

PHP:

foreach($_POST['content'] as $record) 
{ 
    // insert query 
} 
+0

'$ record'将一直设置,不需要使用'isset()'来检查。 – hakre

+0

是的,这是真的。我总是谨慎的检查条件:p –

+0

但是不会插入12345?我需要单独的行 – SMacFadyen