Codeigniter-- Foreach将数组插入DB

时间:2017-09-28 06:55:55

标签: php sql arrays sql-server codeigniter

所以当我插入记录时,我希望在我的表中实现这一点。

**section       test        sample      quantity    specification**
 molecular    necropsy     Liver            3            n/a
 molecular    necropsy    Trachea           4            n/a
molecular     necropsy    Kidney            5           n/a

注意:

  1. 我只有1个用于SECTION的下拉列表和1个用于测试的下拉列表。
  2. 在这2个下拉列表中,我可以有很多样本,数量和规格。

    //This my CONTROLLER
    public function save_section_test1() {
    $section_id = $this->input->post('section');
    $test = $this->input->post('test');
    $samp = $this->input->post('samp');
    $quantity = $this->input->post('quantity');
    $specify = $this->input->post('specify');
    
    $save_sect = array();
    
    for ($i = 0; $i < count($sample); $i++) {
    
        $save_sect[] = array(
        'section_id' => $section_id[$i],
        'test_id' => $test[$i],
        'samp_id' => $sample[$i],
        'quantity' => $quantity[$i],
        'specification' => $specify[$i]
        );
    }
    
    $this->user_model->save_sect1($save_sect);
    redirect(base_url('user/show'));
    }
    
    //This is my MODEL
    public function save_sect1($save_sect) {
    return $this->db->insert_batch('tblsavesection', $save_sect); 
    }
    
  3. 有人可以帮帮我。谢谢你。

3 个答案:

答案 0 :(得分:0)

根据您的代码,计数在$sample上执行,但该变量未定义,因此您的for循环应如下所示:

for ($i = 0; $i < count($samp); $i++) {
    $save_sect[] = array(
    'section_id' => $section_id[$i],
    'test_id' => $test[$i],
    'samp_id' => $samp[$i],
    'quantity' => $quantity[$i],
    'specification' => $specify[$i]
    );
}

希望这有帮助。

答案 1 :(得分:0)

试试这个

CONTROLLER

public function save_section_test1() {

    $post=$this->input->post();
    $result=$this->user_model->save_sect1($post);

    redirect(base_url('user/show'));
  }

模型

public function save_sect1($params) {
    $save_sect = array();
    foreach($params as $key=>$value){
      $save_sect[$key] = array(
          'section_id' => $value['section'],
          'test_id' => $value['test'],
          'samp_id' => $value['samp'],
          'quantity' => $value["quantity"],
          'specification' => $value['specify']
      );
    }

    $this->db->insert_batch('tblsavesection', $save_sect);
    return $this->db->trans_status();
  }

答案 2 :(得分:-2)

dd($this->input->post);

您首先 dd $this->input->post

我认为它会有类似$this->input->post[0] ... $this->input->post[1]的数组,然后你可以遍历并获取数据。