2012-02-29 3 views
-2

insert_batch에 몇 가지 문제가 있습니다. 내 컨트롤러에서Codeigniter에서 insert_batch에 대한 데이터를 포맷하려면 어떻게해야합니까?

<input type="text" name="title[]" /> 

내가 가진 : 내가 좋아하는 입력을 가지고

for($i=0; $i<=3; $i++) 
{ 
    $data[] = array(
     'field' => $this->input->post('text'), 
     'filed2' => $this->input->post('user') 
    ); 
} 
$this->db->insert_batch('table', $data) 

내가 무슨 일을하고 있는가, 그것을 할 수있는 가장 좋은 방법은 무엇입니까?

+0

을 받고를 어떤 오류? 삽입 된 내용을 확인하기 위해 insert_batch 문 다음에'echo $ this-> db-> last_query()'를 시도해보십시오. – Catfish

+0

예, 오류 메시지를 게시하십시오. –

+0

여기에 무슨 문제가 있습니까? 무슨 일 이니? –

답변

2

필드 이름에 name="text[]"과 같은 대괄호가 있으면 잘 아는 것처럼 배열을 게시합니다. 이를 고려할 때 $this->input->post('text')은 항상 배열 자체를 반환합니다. 현재 매번 정확히 동일한 전체 배열을 할당하고 있습니다. $i 변수로 키 값을 액세스 해보십시오 :

$text = $this->input->post('text'); 
$user = $this->input->post('user'); 

for($i=0; $i<=3; $i++) 
{ 
    $data[] = array(
     'field' => $text[$i], 
     'filed2' => $user[$i] 
    ); 
} 
$this->db->insert_batch('table', $data) 

을 대신 $_POST 데이터를 통해 분별 수 있습니다 대안, 루프로서, 하나 개의 필드 이름을 선택 :

$text = $this->input->post('text'); 
$user = $this->input->post('user'); 
foreach ($text as $key => $value) 
{ 
    $data[] = array(
     'field' => $text[$key], 
     'filed2' => $user[$key] 
    ); 
} 

에게이 방법을 사용하면 돈을 't 에는이 있는데 얼마나 많은 값을 기대하는지는 알지만 실제로는 여러분에게 달려 있습니다.

+0

안녕하세요. 값 (1,3,4t), (null null null)과 같은 태그를 보내는 중 일하므로 코드 반감에 감사드립니다. 그 이유는 무엇입니까? –

+0

실제 HTML 양식 및 입력을 보지 않고 추측 할 수만 있습니다. 기본적으로 예상되는 게시물 데이터는 실제로 존재하지 않습니다. 왜 에러 리포팅을 켜고 에러를 읽지 않습니까? 아니면 에러 로그 나'var_dump()'또는 다른 많은 디버깅 툴을 사용합니까? –

+0

좋아요. text [] title [] name [] etc와 같은 많은 필드가 있습니다. 얼마나 많은 필드가 중복되어 있고 데이터베이스에 foreach를 두어 필드가 중복 된 양식을 상상해보십시오. –

0

'$ this-> db-> insert_batch formatting'을 검색하는 사용자를 위해 다음과 같은 내용이 유용 할 수 있습니다.
많은 정보를 배열에 압축하여 하나의 작업으로 데이터베이스 테이블에 삽입하는 방법을 찾고있었습니다. 나는 insert_batch 할 거라고 생각하지만 그것은 내가 기대하지 않았다주의가 : 배열을 포맷 할 때 이 필드-이름은 각 하위 배열 IE에서 동일해야합니다 다음은 작동하지 않습니다 : 당신이

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

$this->db->insert_batch('mytable', $data); 
관련 문제