2013-05-19 2 views
0

Я не понимаю, как точно вставить строку в таблицу MySQL. Если я использую свой код, я добавляю новую строку для каждого сообщения. Вместо этого я хочу только одну строку со всеми значениями.Codeigniter - Ввод ввода массива в базу данных mysql

Вот пример кода.

HTML:

echo form_open('account/update'); 
    echo "<p><label for='gender'>Gender</label> 
<input type='text' name='gender' id='gender' value='".$gender."' /> 
    </p> 
    <p> 
    <label for='age'>Age</label> 
    <input type='text' name='age' id='age' value='".$age."' /> 
    </p> 
     <p> 
    <label for='bio'>Biografie</label> 
    <input type='text' name='bio' id='bio' value='".$bio."' /> 
    </p> 
     <p> 
    <label for='skills'>Skills</label> 
    <input type='text' name='skills' id='skills' value='".$skills."' /> 
    </p> 

    <p><input type='submit' value='Save' /></p>"; 


echo form_close(); 

Контроллер:

function update() 
{ 
    $userid = $this->session->userdata("userid"); 


    $datanew = array(
      'userid' => $this->session->userdata("userid"), 
      'gender' => $this->input->post('gender'), 
      'age' => $this->input->post('age'), 
      'bio' => $this->input->post('bio') , 
      'skills' => $this->input->post('skills') 
     ); 
$this->session->set_userdata($data); 
    $this->load->model('model_account'); 
    $this->load->model("model_user"); 

    $this->model_account->profile_insert($datanew); 

$this->load->view("change_avatar"); 
    redirect("account/show/".$this->session->userdata("userid")); 
} 

Модель:

function profile_insert($datanew) 
{ 

    $this->db->insert('profile', $datanew); 

} 

я получаю 5 строк, если я отправить форму HTML.

+0

хмм я не могу использовать, когда я думаю, потому что вставка строка не доступна для check.i нужно просто одна строка –

+0

вы хотите вставить массив только в одну строку? – egig

+0

да, мне нужна только одна строка. или строка с любыми значениями в правильных столбцах. somethin я сделал неправильный –

ответ

0

Это работает для меня: I Задайте идентификатор пользователя уникальным и выполнил оператор if в контроллере ti между функцией вставки и обновления.

Контроллер:

function update() 
{ 

    $datanew = array(
      'userid' => $this->session->userdata("userid"), 
      'gender' => $this->input->post('gender'), 
      'age' => $this->input->post('age'), 
      'bio' => $this->input->post('bio') , 
      'skills' => $this->input->post('skills') 
     ); 

    $exists = $this->db->select('profile')->where('userid', $this->session->userdata("userid")); 

    if($exists) 
    { 

     $this->session->set_userdata($datanew); 
     $this->load->model('model_account'); 
     $this->load->model("model_user"); 
     $this->model_account->profile_update($datanew); 
     $this->load->view("change_avatar"); 
     redirect("account/show/".$this->session->userdata("userid")); 
    } 
     else 
    { 


     $this->session->set_userdata($datanew); 
     $this->load->model('model_account'); 
     $this->load->model("model_user"); 
     $this->model_account->profile_insert($datanew);  
     $this->load->view("change_avatar"); 
     redirect("account/show/".$this->session->userdata("userid")); 
    } 

} 

модель:

function profile_insert($datanew) 
{ 
     $this->db->insert('profile', $datanew);   
} 

    function profile_update($datanew) 
{ 
     $this->db->update('profile', $datanew);    
} 

Спасибо за помощь мне