更新到数据库时,Codeigniter 中的 Crud 不受影响

Crud in Codeigniter not affected when Update to database

我一直在努力制作一些 CRUD,但我没有弄错。 但是当我更新数据时,我在数据库中没有受到任何影响,这里是我的代码

Table : 歌曲 柱子 : 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');
     }

看到我没有任何问题,但是当我编辑并尝试更新一些数据时,它没有受到影响。

希望对您有所帮助:

您已在 form 中禁用 id_song 输入类型,只需从中删除 disabled attr

因为这个你无法在你的 update_song 方法中获得 id_song post 值,反过来也没有进入你的 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">