Codeigniter Обновление таблицы базы данных - PullRequest
0 голосов
/ 22 марта 2019

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

как это enter image description here

это View:

<form method="post" action="<?php echo base_url() ?>user/update_user_data">

<div class="form-group">
    <label> Enter New first name</label>
    <input type="text" name="firstname" class="form-control" />
</div>
<div class="form-group">
    <label> Enter New last name </label>
    <input type="text" name="lastname" class="form-control" />
</div>
<div class="form-group">
    <label> Enter New fullname </label>
    <input type="text" name="fullname" class="form-control" />


<div class="form-group">  
    <input type="submit" name="update" value="Update" class="btn btn-info" />
</div>

это модель:

function update_data($id = FALSE)  
  {  

    if($id == FALSE){
            $query = $this->db->get('user');
            return $query->result_array(); 
        }

        $query = $this->db->get_where('user', array('id' => $id));
        return $query->row_array();
  } 
 public function update_user_data($data)
    { 
        $data = array('firstname' => $this->input->post('firstname'),
                        'lastname' => $this->input->post('lastname'),
                        'fullname' => $this->input->post('fullname')


                      );

        $this->db->update("user", $data);
    }

это контроллер:

    public function update_data($id = NULL)
    {

        $data['us'] = $this->User_Model->update_data($id);

        if (empty($data['us'])) {
            show_404();
        }
         $this->load->view('user/update-user', $data);
    }

    public function update_user_data()
    {
        $data['title'] = 'Update user';

            $this->load->library('upload');
                $data =  array('upload_data' => $this->upload->data());
            $this->User_Model->update_user_data($data);

            redirect('user/index');

    }

Я только начинающий, пожалуйста, уважайте, спасибо Если что-то не так с моим кодом, пожалуйста, дайте мне знать. Это работает, кстати, единственная проблема, как только я обновляю данные пользователей, он обновляет все данные в базе данных.

1 Ответ

1 голос
/ 23 марта 2019

Вы изменяете каждую строку в таблице, потому что вы не указали какой-либо конкретной строки. И по этой причине каждая строка обновляется после выполнения кода обновления. Вы должны использовать ниже код

function update_data($id = FALSE)  
  {  

    if($id == FALSE){
            $query = $this->db->get('user');
            return $query->result_array(); 
        }

        $query = $this->db->get_where('user', array('id' => $id));
        return $query->row_array();
  } 
 public function update_user_data($data)
    { 
        $data = array('firstname' => $this->input->post('firstname'),
                        'lastname' => $this->input->post('lastname'),
                        'fullname' => $this->input->post('fullname')


                      );

        $this->db->where('id','1')->update("user", $data); //change id as require your own need
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...