CI 묻고 답하기

제목 foreach문으로 DB insert문을 어떻게 작성하나요
카테고리 CI 2, 3
글쓴이 쪼무래기 작성시각 2019/04/16 16:23:33
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 18170   RSS
    function insert_order($insert_opt){

        $data=array(
            'user_name'=>$insert_opt['user_name'],
            'post_num'=>$insert_opt['post_num'],
        );

        $result=$this->db->insert('prjtbl',$data);
        return $result;
    }

일단 작성한 model 소스의 일부입니다.

<input type="text" name="user_name[]" value="">
<input type="post_num" class="postcodify_postcode5" name="post_num[]" id="post_num" value="">


 

이것은 view 소스의 일부이구요.

 

여기서 동일한 네임값의 인풋박스가 여러개 있을 때 value값을 db에 각각 저장하고싶습니다.

구글링을 해보니 모델에서 foreach문을 써서 한다고 하더라구요 

근데 오후 내내 해보고있는데 어떤식으로 써야할지 전혀 감이 안옵니다.. 

 다음글 처음 접속시 mysql_init() 의 undefine... (2)
 이전글 post 데이터전송후 새로고침 뒤로가기 막기좀 알려주세... (2)

댓글

kaido / 2019/04/16 16:42:13 / 추천 0

$this->db->insert_batch();

http://www.ciboard.co.kr/user_guide/kr/database/query_builder.html#inserting-data

이런 방법도 있으니 참고 하시면 좋습니다.

 

어렵게 생각 하실거 없이 컨트롤러에서 모델을 호출하지 말고 루프 돌면서 값을 만들어보세요.

foreach($this->input->post('user_name', true) as $value) { 

$data = []; 
...
$this->db->insert($data); 
...
} 

그걸 function 으로 나눈다음에 model에 넣으면 구현 완료입니다.

컨트롤러는 기본적으로 모델을 가져가기 때문에 컨트롤러에서 모델을따로 상속 하지 않아도 쿼리빌더등 모든 문법을 사용 가능합니다.