Postingan lainnya
tidak bisa return setelah insert data
Saya sudah mencoba berbagai cara namun tetap tidak mendapatkan hasil yang sesuai, namun saya menemukan inti permasalahannya pada model yaitu data yang berhasil di inputkan kedalam database tidak dapat di return hasilnya, dengan kata lain program stuck tetapi jika submit saya klik untuk kedua kalinya akan menampilkan hasil jika data telah ada dalam database.
// Controller
public function simpan_setoran() {
$this->load->helper(array('form','url'));
if($_POST) {
if( ! empty($_POST['kode_sampah'])) {
$total = 0;
foreach($_POST['kode_sampah'] as $k) {
if( ! empty($k)){ $total++; }
}
if($total > 0) {
$this->load->library('form_validation');
$this->form_validation->set_rules('nomor_nota','Nomor Nota ','trim|required|max_length[40]|alpha_numeric|callback_cek_nota[nomor_nota]');
$this->form_validation->set_rules('tanggal','Tanggal ','trim|required');
$this->form_validation->set_rules('IdUserNasabah','Nasabah ','trim|required');
$no = 0;
foreach($_POST['kode_sampah'] as $d) {
if( ! empty($d)) {
$this->form_validation->set_rules('kode_sampah['.$no.']','Kode Sampah #'.($no + 1), 'trim|required|max_length[40]|callback_cek_kode_sampah[kode_sampah['.$no.']]');
$this->form_validation->set_rules('jumlah_setor['.$no.']','Jumlah / Kg #'.($no + 1), 'trim|numeric|required|callback_cek_nol[jumlah_setor['.$no.']]');
}
$no++;
}
$this->form_validation->set_message('required', '%s harus diisi');
$this->form_validation->set_message('cek_kode_sampah', '%s tidak ditemukan');
$this->form_validation->set_message('cek_nota', '%s sudah ada');
$this->form_validation->set_message('cek_nol', '%s tidak boleh nol');
$this->form_validation->set_message('alpha_numeric', '%s Harus huruf / angka !');
if($this->form_validation->run() == TRUE) {
$total_setoran = $this->input->post('total_setoran');
$id_nasabah = $this->input->post('IdUserNasabah');
$pot10 = $this->input->post('pot10');
$nomor_nota = $this->input->post('nomor_nota');
$tgl_setor = $this->input->post('tanggal');
$id_pengurus = $this->session->userdata('s_id_user');
$this->load->model('m_setoran');
/* Insert data ke tbl_setoran */
$inst_Setoran = $this->m_setoran->insert_setoran($nomor_nota, $tgl_setor, $total_setoran, $pot10, $id_nasabah, $id_pengurus);
if($inst_Setoran) {
echo json_encode(array('status' => 1, 'pesan' => "Transaksi Setoran berhasil disimpan !"));
}else{
$this->query_error("Gagal insert setoran !");
}
}else{
echo json_encode(array('status' => 0, 'pesan' => validation_errors("<font color='red'>- ","</font><br />")));
}
}else{
$this->query_error("Harap masukan minimal 1 kode sampah Error 2 !");
}
}else{
$this->query_error("Harap masukan minimal 1 kode sampah Error 1 !");
}
}else{
$this->tambah_setoran();
}
}
// Model
public function insert_setoran($nomor_nota, $tgl_setor, $total_setoran, $pot10, $id_nasabah, $id_pengurus) {
$dt = array(
'nomor_nota' => $nomor_nota,
'tgl_setor' => $tgl_setor,
'total_setoran' => $total_setoran,
'pot10' => $pot10,
'id_nasabah' => $id_nasabah,
'id_pengurus' => $id_pengurus
);
$this->db->insert('tbl_setoran', $dt);
return $this->db->affected_rows();
}
Permaslahannya jika pada model /* function insert_setoran */ saya hapus seluruhnya menyisahkan /* return $this->db->affected_rows(); */ program akan berjalan lancar, dengan kata lain baris /* $this->db->insert($table, $data); */ ini yang menyebabkan program stuck padahal data berhasil masuk ke dalam database namun tidak bisa return hasilnya.
3 Jawaban:
coba ubah bagian ini:
return $this->db->affected_rows();
jadi seperti ini:
return $this->db->affected_rows() > 0;
Jawaban Terpilih
Sudah terjawab.... Ternyata permasalahannya ada pada Table, yaitu semula tabel tbl_setoran menggunakan engine MyISAM insert data kedalam database berhasil namun hasil insert data tersebut tidak dapat di teruskan (RETURN), namun ketika saya mencoba merubah tabel dengan menggunakan engine InnoDB data tidak dapat masuk kedalam database, lalu saya mencoba menghapus tabel dan membuat kembali namun dengan engine InnoDB, dan keajaiban terjadi, data berhasil masuk ke dalam database dan hasil insert data tersebut dapat diteruskan (RETURN). Terima kasih sebelumnya... :)