3

いくつかのフィールドを持つフォームがあり、それらはすべて乗算できます

<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;
    }
4

3 に答える 3

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.
}
于 2013-04-09T09:35:43.397 に答える
0

1 つの配列を作成します。配列には、次のような特定の子のすべてのデータが含まれます

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;
于 2013-04-09T09:46:24.817 に答える
0

キーに配列を割り当てていますが、これは実行できません。すべての要素をループしてみてください

foreach ($_POST as $key)<br>
{<br>
    foreach($key as $v=>$v1)<br>
    {<br>
        $s[$v] = $v1;<br>
    }<br>

}<br>
print_r($s);
于 2013-04-09T09:44:43.457 に答える