我有一个包含多个字段的表单,所有字段都可以乘以
<input type="text" name="child_name[]" />
<input type="text" name="child_age[]" />
<input type="text" name="child_gender[]" />
<input type="text" name="child_school[]" />
我想使用foreach向数据库中的表添加多行,但每次尝试时都会出现错误
"Unknown column 'Array' in 'field list'"
当我打印出数据时,它将所有字段显示为数组,所以我必须对foreach语句做错了,但我不知道是什么
Array ( [child_name] => Array ( [0] => child one [1] => child two) [child_age] => Array ( [0] => 14 [1] => 13 ) [child_gender] => Array ( [0] => male [1] => female ) [child_school] => Array ( [0] => burnside [1] => summer heights high ) )
非常感谢任何帮助!#
已更新
这是我的foreach的代码
foreach ($_POST['child_name'] as $child_name)
{
$insert_children_data = array(
'child_name' => $_POST['child_name'],
'child_age' => $_POST['child_age'],
'child_gender' => $_POST['child_gender'],
'child_school' => $_POST['child_school']
);
$insert = $this->db->insert('portrait_children', $insert_children_data);
return $insert;
}
答案 0 :(得分:4)
试试这个(假设你的表单为每个child_name,child_age等获得了相同数量的元素):
for ($ix=0; $ix<count($_POST['child_name']); $ix++)
{
$insert_children_data = array(
'child_name' => $_POST['child_name'][$ix],
'child_age' => $_POST['child_age'][$ix],
'child_gender' => $_POST['child_gender'][$ix],
'child_school' => $_POST['child_school'][$ix]
);
$insert = $this->db->insert('portrait_children', $insert_children_data);
//return $insert; //you cant return here. must let the loop complete.
}
答案 1 :(得分:0)
您正在为一个键分配一个数组,这是不可行的,尝试循环所有元素
foreach ($_POST as $key)<br>
{<br>
foreach($key as $v=>$v1)<br>
{<br>
$s[$v] = $v1;<br>
}<br>
}<br>
print_r($s);
答案 2 :(得分:0)
制作一个阵列。数组包含特定子项的所有数据,如
Array (
[0] => Array (
[name] => child1
[age] => 5
[gender] => male
[school] => 1school )
[1] => Array (
[name] => child2
[age] => 10
[gender] => male
[school] => school2 )
请尝试以下代码
$i =0;
foreach($_REQUEST['child_name'] as $child)
{
$child1[$i]['name'] = $child;
$i++;
}
$i =0;
foreach($_REQUEST['child_age'] as $child)
{
$child1[$i]['age'] = $child;
$i++;
}
$i =0;
foreach($_REQUEST['child_gender'] as $child)
{
$child1[$i]['gender'] = $child;
$i++;
}
$i =0;
foreach($_REQUEST['child_school'] as $child)
{
$child1[$i]['school'] = $child;
$i++;
}
$insert = $this->db->insert('portrait_children', $child1);
return $insert;