Edit Data CodeIgniter 3

selamat pagi semuanya. saya mau bertanya lagi nih. saya sebelumnya sudah buat sebuah form edit data, dan datanya berhasil diedit sampai ke databasenya. kemudian saya merubah isi form dengan memasukkan "upload" data gambar di dalamnya. saat saya melakukan edit data, datanya tidak mau ter-update di databasenya. bukan hanya gambarnya, tapi seluruh field tidak berubah. mohon bantuannya. terima kasih

cont

function edit()
{
 if(isset($_POST['submit']))
		{
		$config['upload_path'] = './upload/';
        	$config['allowed_types'] = 'gif|jpg|png';
        	$config['max_size']	= '1000';
        	$config['max_width']  = '2000';
        	$config['max_height']  = '1024';

            $this->upload->initialize($config);
            if(!$this->upload->do_upload('filecover'))
            {
            	$gambar="";
            }
            else
            {
                $gambar=$this->upload->file_name;
            }
			$kategori_id = $this->input->post('kategori_id');
			$penerbit_id = $this->input->post('penerbit_id');
			$judul = $this->input->post('judul');
			$deskripsi = $this->input->post('deskripsi');
			$pengarang = $this->input->post('pengarang');
			$tebal_hlm = $this->input->post('tebal_hlm');
			$harga = $this->input->post('harga');
			$stok = $this->input->post('stok');
			$data = array(
				'kategori_id' => $kategori_id,
				'penerbit_id' => $penerbit_id,
				'judul' => $judul,
				'deskripsi' => $deskripsi,
				'pengarang' => $pengarang,
				'tebal_hlm' => $tebal_hlm,
				'harga' => $harga,
				'stok'=> $stok,
				'filecover' => $gambar
				);
			$this->model_buku->edit($data,$id);
			redirect('buku');
		}
		else
		{
			$this->load->model('model_kategori');
			$this->load->model('model_penerbit');
			$data['penerbit'] = $this->model_penerbit->tampil_data()->result();
			$data['kategori'] = $this->model_kategori->tampil_data()->result();
			$id = $this->uri->segment(3);
			$data['record'] = $this->model_buku->get_one($id)->row_array();
			$this->template->load('templates/template_a','buku/edit_data', $data);
		}

model


function get_one($id)
	{
		$param = array('buku_id' => $id);
		return $this->db->get_where('buku', $param);
	}

function edit($data, $id)
	{
		$this->db->where('buku_id', $id);
		$this->db->update('buku', $data);
	}

view


<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<h3>Tambah Data Buku</h3><hr/>

<body>
	<div id="body">
		<form action="<?php echo site_url('buku/edit') ?>" method="post" enctype="mulripart/form-data>
			<table class="table table-bordered">
				<tr>
					<td>Kategori</td>
					<td><select name="kategori_id" class="form-control">
						<?php
						foreach ($kategori as $k)
						{
							echo "<option value='$k->kategori_id'";
							echo $record['kategori_id']==$k->kategori_id?'selected':'';
                    		echo ">$k->nama_kategori</option>";
						}
						?>
					</select></td>
				</tr>
				<tr>
					<td>Penerbit</td>
					<td><select name="penerbit_id" class="form-control">
						<?php
						foreach ($penerbit as $p)
						{
							echo "<option value='$p->penerbit_id'";
							echo $record['penerbit_id']==$p->penerbit_id?'selected':'';
							echo ">$p->nama</option>";
						}
						?>
					</select></td>
				</tr>
				<tr>
					<td>Judul</td>
					<td><input type="text" class="form-control" name="judul" value="<?php echo $record['judul'] ?>"></td>
				</tr>
				<tr>
					<td>Deskripsi</td>
					<td><input type="text" class="form-control" name="deskripsi" value="<?php echo $record['deskripsi'] ?>"></td>
				</tr>
				<tr>
					<td>Pengarang</td>
					<td><input type="text" class="form-control" name="pengarang" value="<?php echo $record['pengarang'] ?>"></td>
				</tr>
				<tr>
					<td>Halaman</td>
					<td><input type="text" class="form-control" name="tebal_hlm" value="<?php echo $record['tebal_hlm'] ?>"></td>
				</tr>
				<tr>
					<td>Harga</td>
					<td><input type="text" class="form-control" name="harga" value="<?php echo $record['harga'] ?>"></td>
				</tr>
				<tr>
					<td>Stok</td>
					<td><input type="text" class="form-control" name="stok" value="<?php echo $record['stok'] ?>"></td>
				</tr>
				<tr>
					<td>Filecover</td>
					<td><input type="file" name="filecover" size="20" /></td>
				</tr>
				<tr>
					<td colspan="2"><button type="submit" class="btn btn-success btn-sm" name="submit">Edit</button>
					<?php echo anchor('welcome', 'Kembali', array('class' => 'btn btn-primary btn-sm')) ?></td>
				</tr>
			</table>
		</form>
	</div>
</body>
</html>

avatar iiks
@iiks

14 Kontribusi 0 Poin

Diperbarui 7 tahun yang lalu

9 Jawaban:

coba di trace kembali dulu, jika ada kondisi/if diurutkan saat kamu klik submit itu masuknya kemana saja, misal ada if submit itu masuk ke proses edit/tidak ada proses upload itu sukses/tidak lalu ada proses update itu sukses/tidak tiap action kamu harus bisa menentukan action ini sukses/tidak.

lalu ada error atau tidak ? harusnya klo ada sesuatu yg tidak sesuai ada error. kalau tidak ada error berarti berjalan tidak sesuai kondisi (if) yg kita harapkan.

avatar sifai
@sifai

80 Kontribusi 24 Poin

Dipost 7 tahun yang lalu

tidak ada pesan error atau apapun mas @sifai. setelah saya tekan tombol edit, langsung redirect ke controller penampil datanya. tapi datanya masih belum berubah

avatar iiks
@iiks

14 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

itu saya lihat $id nya belum di definisiin ya diatasnya?

yang

 $this->model_buku->edit($data,$id);

mungkin di modelnya jadi gak tau idnya yang mana yang mau di edit

avatar demaram
@demaram

51 Kontribusi 33 Poin

Dipost 7 tahun yang lalu

gimana cara definisinya ya mas @demaram? saya belum banyak tau

avatar iiks
@iiks

14 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

oh iya, @demaram bener tuh. di form/viewnya kamu kasih hidden it name='id' value ambilkan dari kolom id, terus di controller kamu terima definisikan ke variabel id yg akan dikirim ke model->edit

avatar sifai
@sifai

80 Kontribusi 24 Poin

Dipost 7 tahun yang lalu

udah saya tambahin jadi gini mas @sifai, bener atau salah nih? tapi hasilnya masih sama mas, datanya ga berubah.


<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<h3>Tambah Data Buku</h3><hr/>

<body>
	<div id="body">
		<form action="<?php echo site_url('buku/edit') ?>" method="post" enctype="mulripart/form-data>
			<table class="table table-bordered">
                                <tr>
                                        <td><input type="hidden" name="buku_id" value="<?php echo $record['buku_id'] ?>"
                                <tr>
				<tr>
					<td>Kategori</td>
					<td><select name="kategori_id" class="form-control">
						<?php
						foreach ($kategori as $k)
						{
							echo "<option value='$k->kategori_id'";
							echo $record['kategori_id']==$k->kategori_id?'selected':'';
                    		echo ">$k->nama_kategori</option>";
						}
						?>
					</select></td>
				</tr>
				<tr>
					<td>Penerbit</td>
					<td><select name="penerbit_id" class="form-control">
						<?php
						foreach ($penerbit as $p)
						{
							echo "<option value='$p->penerbit_id'";
							echo $record['penerbit_id']==$p->penerbit_id?'selected':'';
							echo ">$p->nama</option>";
						}
						?>
					</select></td>
				</tr>
				<tr>
					<td>Judul</td>
					<td><input type="text" class="form-control" name="judul" value="<?php echo $record['judul'] ?>"></td>
				</tr>
				<tr>
					<td>Deskripsi</td>
					<td><input type="text" class="form-control" name="deskripsi" value="<?php echo $record['deskripsi'] ?>"></td>
				</tr>
				<tr>
					<td>Pengarang</td>
					<td><input type="text" class="form-control" name="pengarang" value="<?php echo $record['pengarang'] ?>"></td>
				</tr>
				<tr>
					<td>Halaman</td>
					<td><input type="text" class="form-control" name="tebal_hlm" value="<?php echo $record['tebal_hlm'] ?>"></td>
				</tr>
				<tr>
					<td>Harga</td>
					<td><input type="text" class="form-control" name="harga" value="<?php echo $record['harga'] ?>"></td>
				</tr>
				<tr>
					<td>Stok</td>
					<td><input type="text" class="form-control" name="stok" value="<?php echo $record['stok'] ?>"></td>
				</tr>
				<tr>
					<td>Filecover</td>
					<td><input type="file" name="filecover" size="20" /></td>
				</tr>
				<tr>
					<td colspan="2"><button type="submit" class="btn btn-success btn-sm" name="submit">Edit</button>
					<?php echo anchor('welcome', 'Kembali', array('class' => 'btn btn-primary btn-sm')) ?></td>
				</tr>
			</table>
		</form>
	</div>
</body>
</html>

avatar iiks
@iiks

14 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

maaf mas @sifai, saya lupa mendefinisikan $id di controllernya. barusan setelah saya definisikan, datanya ter-update mas. terima kasih mas @sifai dan mas @demaram atas masukannya.

avatar iiks
@iiks

14 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

Jawaban Terpilih

di viewnya tambahin id dengan hidden

 <input type="text" class="form-control" name="buku_id" hidden value="<?php echo $record['buku_id'] ?>"></td>

nah terus di controllernya tinggal di tambahin,

 $id = $this->input->post('buku_id');

taro kodenya di harus di atas

$this->model_buku->edit($data,$id);
avatar demaram
@demaram

51 Kontribusi 33 Poin

Dipost 7 tahun yang lalu

terima kasih mas @demaram, sekarang datanya sudah bisa di-update.

avatar iiks
@iiks

14 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban