2013-02-20 3 views
-1

현재 인벤토리 추적 시스템에 codeigniter를 사용하여 응용 프로그램을 만들고 있습니다. 이벤트를 생성/표시/업데이트/제거하는 방법을 만들었습니다. 내가 겪고있는 문제는 인벤토리 테이블입니다. 각 행에 고유 한 제품이있는 테이블을 표시하고 있습니다. 데이터베이스 인벤토리 테이블 행을 동시에 업데이트 할 수 있기를 원합니다.Codeigniter 테이블에 여러 쿼리 삽입

function insert_inventory($data){ 

    foreach($_POST['product'] as $product){ 
     $this->db->insert('inventory', $data); 
    } 
} 

을 그리고 이것은 컨트롤러입니다 : : 내 모델이 뭔가를 시도하고

function add_show_inventory() { 
    $data['products']=$this->product->get_products(); 

    $this->form_validation->set_rules('skuID', 'skuID', 'required'); 
    $this->form_validation->set_rules('brought-in', '"Brought In"', 'required'); 
    $this->form_validation->set_rules('finished-with', '"Finished With"', 'required'); 
    $this->form_validation->set_rules('deliveries', 'Deliveries'); 
    $this->form_validation->set_error_delimiters('<div class="error-module">', '</div>'); 

    if($this->form_validation->run()== FALSE){ 
     $this->load->view('header'); 
     $this->load->view('menu'); 
     $this->load->view('inventory/show-add-inventory', $data); 
     $this->load->view('footer'); 
    } else { 
     if($_POST){ 

      //$data['show']=$this->show->get_show(); 

      $data=array(
       'skuID'=>$_POST['skuID'], 
       'product'=>$_POST['product'], 
       'deliveries'=>$_POST['deliveries'], 
       'brought-in' =>$_POST['brought-in'], 
       'finished-with'=>$_POST['finished-with'], 
      ); 

      $this->inventory->insert_inventory($data); 
      redirect(base_url().'shows/'); 
     } 
    } 
} 

동시에 여러 행을 삽입하는 방법에 어떤 아이디어? 어떤 도움을 주셔서 감사합니다.

+0

컨트롤러 로직은 데이터의 가치가 하나의 행을 잡아입니다. 어떻게 하나 이상을 가질 수 있습니까? 예제를 게시 할 수 있습니까? – blackcatweb

+0

정확히 무엇의 예를 게시 하시겠습니까? –

+0

테이블 인벤토리는 어떤 모양입니까? –

답변

0

이에 대한 코드를 최적화 : $this->db->insert_batch();

$data = array(
    array(
     'title' => 'My title' , 
     'name' => 'My Name' , 
     'date' => 'My date' 
    ), 
    array(
     'title' => 'Another title' , 
     'name' => 'Another Name' , 
     'date' => 'Another date' 
    ) 
); 

$this->db->insert_batch('mytable', $data); 
+0

어떻게 insert_batch 함수가 작동하는지 이해합니다. 그러나 동적/알려지지 않은 양의 제품으로 어떻게 작동시킬 수 있습니까? 정의되지 않은 양의 제품을 가지고 있으므로 각 배열을 하드 코딩 할 수 없으므로 foreach 루프가 작동하기를 바라고 있습니다. –

+0

글쎄, 당신은 당신이 세션에서 데이터를 저장하는 것과 같은 일을하고 다음 특정 제품 번호에 도달하면 배치를 삽입하고 싶지 않는 한, 각 함수 호출에서 얻은 것과 함께 작업해야합니다. 여전히 함수 호출 당 하나의 제품/배치를 사용하는 것이 좋습니다 ... 또는 전체 앱을 다르게 최적화하는 것이 좋습니다. foreach 루프에 대해 - 어디서든 제품 변수를 참조하지는 않습니다 ... foreach를 사용하여 일괄 삽입에 사용할 배열을 만들 수 있습니다. – Shomz

+0

@TylerCraft 정의되지 않은 번호가 아니라 정의 된 필드의 수에 대한 것이 아니라 사용자가 5 개의 필드 만 입력하면 문제가되지 않는다는 것을 알게되면 배열과 비슷한 구조로 만든 다음 insert_batch를 사용하십시오 – tomexsans