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.

avatar Akhmady
@Akhmady

3 Kontribusi 0 Poin

Diperbarui 6 tahun yang lalu

3 Jawaban:

coba ubah bagian ini:

 return $this->db->affected_rows();

jadi seperti ini:

 return $this->db->affected_rows() > 0;
avatar keccikun
@keccikun

368 Kontribusi 197 Poin

Dipost 6 tahun yang lalu

tetap sama saja, sudah saya coba...

avatar Akhmady
@Akhmady

3 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

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... :)

avatar Akhmady
@Akhmady

3 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban