通过codeigniter从数据库中的网格中插入数据作为数组?

时间:2014-09-18 07:11:29

标签: php mysql codeigniter

我希望按网格插入数据,其中数据可以是1行或多行。我想用codeigniter中的数组做这个。问题是我无法通过我的代码在我的数据库中插入此代码。我正在做什么的代码演示。我希望按网格在数据库中插入多行,我在帖子中接收数据作为数组,我无法插入数据。

    <?php 
     $n = $m; // (could be any number to nth level);
     for($i=0; $i<=$n; $i++) { 
     ?> 
    <tr><td><input name="field1[]" id="active[]" value="" /></td> 
    <td><input name="field2[]" id="active[]" value="" />
    </td> <td><input name="field3[]" id="active[]" value="" />
    </td> </tr> 
    <?php }

    for ($i = 0; $i < count($_POST['field1']); $i++) {

   $data = array(
   'field1' => $_POST['field1'][$i],
   'field2' => $_POST['field2'][$i], 
   'field3' => $_POST['field3'][$i], 
   'field4' => $_POST['field4'][$i], );
   if ($_POST['field'][$i] = '') {
   $this->db->insert('field_table', $data);  
    } 
   ?>
------------------------------------------------------------------------

1 个答案:

答案 0 :(得分:0)

所以你的观点

 <tr><td><input name="field1[]" id="active[]" value="" /></td> 
  <td><input name="field2[]" id="active[]" value="" />
  </td> <td><input name="field3[]" id="active[]" value="" />

现在在控制器中你需要将所有三个数组都作为

$a=$_POST['field1'];
$b=$_POST['field2'];
$c=$_POST['field3'];

    $i = new MultipleIterator();
    $i->attachIterator(new ArrayIterator($a), 'field1');
    $i->attachIterator(new ArrayIterator($b), 'field2');
    $i->attachIterator(new ArrayIterator($v), 'field3');

那就简单了

foreach ($i as $item) {

        $dr = $item[0];
        $tl = $item[1];
        $li = $item[2];
   $data = array(
   'field1' => $dr,
   'field2' => $tl, 
   'field3' =>$li
 );
   if ($_POST['field'][$i] = '') {
   $this->db->insert('field_table', $data);  
    }
 }

宾果