我有一个复选框和值表,如果用户选中一个复选框,他们会在名为checkedHW的数组中选择id的值,为简单起见,这就是代码:
$ids = implode(',',arrayofids);
$sql = "insert into table(id, type) values($ids,type);
$db->query($sql);
用于测试的echo查询:
"insert into table('id1,id2','type')
我想如果我循环查询这个查询,我可以假设这样做:
"insert into table('id1','type');"
"insert into table('id2','type');"
但我不太确定该怎么做,任何帮助都会很精彩:)
我实际上用以下方法解决了它:
for($i=0;$i<count(arrayofids); $i++){
$sql = "insert into table(id,type) values(array[$i], 'type'";
$db->query($sql);}
我希望能帮助别人并感谢你们的帮助!
答案 0 :(得分:6)
你可以这样做:
$base = 'INSERT INTO table (id, type) VALUES (';
$array = array(1, 2, 3, 4);
$values = implode(", 'type'), (", $array);
$query = $base . $values . ", 'type')";
$db->query($query);
这是将要提交的内容:
INSERT INTO table (id, type) VALUES (1, 'type'), (2, 'type'), (3, 'type'), (4, 'type')
答案 1 :(得分:0)
两个查询完全不同
insert into table('id1,id2','type')
将插入单行
id1,id2 |型
,而
insert into table('id1','type');"
insert into table('id2','type');"
将插入两行
id1 |键入
id2 |型
因此,如果 id 列为int
,则您无法运行第一个查询
答案 2 :(得分:0)
如果您有一系列复选框,并希望将值插入表中,您可以像这样循环遍历它们:
<?php
$values = array();
foreach ($_POST['field_name'] as $i => $value) {
$values[] = sprintf('(%d)', $value);
}
$values = implode(',', $values);
$sql = "INSERT INTO `table_name` (`column_name`) VALUES $values";
这将为您提供类似于:
的SQL查询INSERT INTO `table_name` (`column_name`) VALUES (1),(2),(3),(4)
希望得到这个帮助。