Crud в Codeigniter не влияет при обновлении базы данных

Я работал, чтобы сделать немного CRUD, я не ошибаюсь.
Но когда я обновляю данные, я ничего не затрагиваю в базе данных и здесь мой код

Таблица : песня
Колонка:
id_song,
id_album,
песня,
автор,
композитор

Код для моей модели ниже:

function Tampil_song_admin(){
return $this->db->get('songs');
}

function Input_song($data,$table){
$this->db->insert($table,$data);
}

function edit_song($where,$table){
return $this->db->get_where($table,$where);
}

function update_song($where,$data,$table){
$this->db->where($where);
$this->db->update($table,$data);
}

function delete_song($where,$table){
$this->db->where($where);
$this->db->delete($table);
}

Посмотреть:

                 <?php foreach($songs as $data){ ?>
<form action="<?php echo base_url('/index.php/Admin_song/update_song'); ?>" method="post">

<h4 class="header-title m-t-0 m-b-30"></h4>

<div class="form-group">
<label for="userName">id_songs </label>
<input type="text" name="id_song" parsley-trigger="change" required
value="<?php echo $data->id_song; ?>"class="form-control" disabled="" id="userName">
</div>
<div class="form-group">
<label for="userName">id_album</label>
<input type="text" name="id_album" parsley-trigger="change" required
value="<?php echo $data->id_album; ?>"  class="form-control" id="userName">
</div>

<div class="form-group">
<label for="userName">Songs</label>
<input type="text" name="song" parsley-trigger="change" required
value="<?php echo $data->song; ?>"  class="form-control" id="userName">
</div>
<div class="form-group">
<label for="userName">Author</label>
<input type="text" name="author" parsley-trigger="change" required
value="<?php echo $data->author; ?>"  class="form-control" id="userName">
</div>
<div class="form-group">
<label for="userName">Composer</label>
<input type="text" name="composer" parsley-trigger="change" required
value="<?php echo $data->composer; ?>"  class="form-control" id="userName">
</div>


<button type="submit" class="btn btn-success waves-effect w-md waves-light m-b-5">Update</button>
<button type="button" class="btn btn-danger waves-effect w-md waves-light m-b-5">Reset</button>
</form>

<?php } ?>

И это для контроллера:

        function index(){
$data['songs'] = $this->m_admin_data->Tampil_song_admin()->result();
$this->load->view('admin/v_admin_song',$data);
}

//Tambah Data
function add_song(){
$this->load->view('admin/v_admin_song_add');
}

function proses_tambah(){
$id_album = $this->input->post('id_album');
$song = $this->input->post('song');
$author = $this->input->post('author');
$composer = $this->input->post('composer');

$data = array(
'id_album' => $id_album,
'song' => $song,
'author' => $author,
'composer' => $composer
);
$this->m_admin_data->Input_song($data,'songs');
redirect('Admin_song/index');
}

//Update/Edit Data
function edit_song($id){
$where = array('id_song' => $id);
$data['songs'] = $this->m_admin_data->edit_song($where,'songs')->result();
$this->load->view('admin/v_admin_song_edit',$data);
}

function update_song(){
$id = $this->input->post('id_song');
$id_album = $this->input->post('id_album');
$song = $this->input->post('song');
$author = $this->input->post('author');
$composer = $this->input->post('composer');

$data = array(
'id_album' => $id_album,
'song' => $song,
'author' => $author,
'composer' => $composer

);

$where = array(
'id_song' => $id
);

$this->m_admin_data->update_song($where,$data,'songs');
redirect('Admin_song/index');
}

//Hapus Data
function delete_song($id){
$where = array('id_song' => $id);
$this->m_admin_data->delete_song($where,'songs');
redirect('Admin_song/index');
}

Видите, я не ошибся, но когда я редактирую и пытаюсь обновить некоторые данные, это не влияет.

1

Решение

Надеюсь, что это поможет вам :

Вы отключили вас id_song тип ввода в вашем form просто удали disabled от этого

Из-за этого вы не можете получить id_song Почтовое значение в вашем update_song метод в свою очередь не попадает в ваш where пункт так

id_song Входные данные должны быть такими:

 <div class="form-group">
<label for="userName">id_songs </label>
<input type="text"name="id_song"value="<?php echo $data->id_song; ?>"class="form-control"  id="userName">
</div>

Или просто сделайте это скрытым, если вы не хотите показывать это так:

    <input type="hidden"name="id_song"parsley-trigger="change" required
value="<?php echo $data->id_song; ?>"class="form-control"  id="userName">
1

Другие решения

Других решений пока нет …