2009-08-29 2 views
1

Codeigniter 프레임 워크를 사용하고 있으며 입력 필드가있는 양식이 있습니다. 나는 데이터베이스에 입력 필드의 값을 삽입 할 때 나는 내가 데이터베이스에 삽입 된 마지막 값을 얻을 수 있지만,이 코드를PHP에서 foreach에서 데이터베이스로 데이터를 삽입하십시오.

function add($tableName) 
{ 
    $fieldsData = $this->db->field_data($tableName); // to get all fields name of the table like (id,title,post ..) 
    foreach ($fieldsData as $key => $field) 
    { 
     $datacc = array( $field->name => $this->input->post($field->name)); 
     echo $this->input->post($field->name) ; // when I submit the form I get all that data I need like (mySubjet, MyPost...) 
    } // but when I insert the data it insert just the last filed like (cat_id = 3) only !// and the other fields are empty .. 
    $this->db->insert($tableName, $datacc); 
} 

을 사용하여 내가 좋아하는 foreach 루프 내에서 질의 줄을 추가 할 때 :

function add($tableName) 
{ 
    $fieldsData = $this->db->field_data($tableName); 
    $datacc = ""; 
    foreach ($fieldsData as $key => $field) 
    { 
     $datacc = array( $field->name => $this->input->post($field->name)); 
     $this->db->insert($tableName, $datacc); // inside the loop ! 
    } 
} 

15 개의 레코드/행 (표의 필드 수)을 삽입하고 모든 행에 고유 한 값을 삽입하십시오. 첫 번째 행에 TITLE 필드를 삽입하고 다음 행의 POST 필드와 세 번째 행의 dateOfpost 필드를 삽입합니다.

답변

2

$ datacc라는 배열이 있지만 매번 재설정됩니다. 추가해야합니다.

function add($tableName) 
{ 
    $fieldsData = $this->db->field_data($tableName); 
    $datacc = array(); // you were setting this to a string to start with, which is bad 
    foreach ($fieldsData as $key => $field) 
    { 
     $datacc[ $field->name ] = $this->input->post($field->name); 
    } 
    $this->db->insert($tableName, $datacc); 

} 

이렇게하면 하나의 행이 삽입되지만 $ datacc 배열이 생성됩니다.

배열 작동 방식에 대한 자세한 내용은 http://php.net/array을 참조하십시오.

+0

WaW! .. 나는 내 눈을 믿을 수 없다 .. 마침내 그것은 일하고있다!! Gregmac 감사합니다. 그래서 많이 .. 나는이 코드에 질려서 하루에 12 시간 동안 3 번 수백 번 시도했습니다! 당신의 도움에 정말 감사드립니다. 그리고 나는 그것을 잊지 않을 것입니다! :) –

0
function insert_multiple($table,$data) 
{ 
    foreach($data as $values) 
    { 
     $this->db->insert($table, $values); 
    } 
} 
+0

안녕하세요. 다시 주셔서 감사합니다. 그렉 맥 솔루션이 작동 중입니다 ... 감사합니다. –

관련 문제