У меня есть форма с несколькими полями, все из которых можно умножить
<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; }
Попробуйте это (если ваша форма имеет одинаковое количество элементов для каждого из 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. }
Сделайте один массив. массив содержит все данные конкретного дочернего элемента
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;
Вы назначаете массив ключу, что невозможно, попробуйте выполнить цикл всех элементов
foreach ($_POST as $key)<br> {<br> foreach($key as $v=>$v1)<br> {<br> $s[$v] = $v1;<br> }<br> }<br> print_r($s);