bagaimana memasukan satu form ke beberapa query di CI?

Hay gan ... masih dalam project yang sama buat nge rewrite aplikasi desa dengan CODEIGNITER.

saya masuk kelas membuat mini framework , ada teknik yang sangat berguna yaitu menjadikan nama tabel dan nama kolom menjadi dinamis. dan juga menghemat kode dengan membuat satu baris kolom dan nilai dengan array. tapi gimana caranya kalo dalam satu form ada beberapa nilai yang masuknya gak ke satu tabel saja contoh formnya :

nama : Nama Warga No nik : no nik warga alamat_domisili : alamat domisili warga

untuk nama dan no nik masuk ke tabel 'surat' dan alamat domisili masuk ke tabel lain yaitu tabel 'alamat_domisili' kalo saya buat satu form yang sama otomatis tekhnik di atas akan terjadi error karna kolom alamat domisili tidak di temukan di kolom 'surat' mungkin ada teknik lain agar ga terjadi error karna ada nilai yang kelempar dari form tetapi ga ada nama kolomnya ? and teknik ngasih tau si input text A masuk ke query A dan input text B masuk ke Query B dan seterusnya.

maaf kalo pertanyaanya berantakan :D di tunggu bantuanya . thanks ......

avatar Saputroandhi
@Saputroandhi

509 Kontribusi 162 Poin

Diperbarui 7 tahun yang lalu

3 Jawaban:

Bisa ditampilkan fungsi yang dimaksud? kalau di framework dia konsepnya MVC, database ngga terikat dengan fungsi. Tinggal gimana kita bikin fungsinya.

Contoh abtraknya, misalnya dari form pas kita submit kita manggil fungsi submit_form()

function submit_form($data){
  $db->insert($table1, $data['nama']);
  $db->insert($table2, $data['nik']);
  $db->insert($table3, $data['alamat']);
}

nanti fungsi insert ini yang fleksibel, dia cuman

function insert($table, $column) {
  INSERT INTO $table VALUES ($column);
}

avatar hilmanski
@hilmanski

2672 Kontribusi 2133 Poin

Dipost 7 tahun yang lalu

misalnya ada 2 form berbeda seperti ini gan hilman

form 1

<form>
<input name='nama'> <!-- input ini akan masuk ke tabel 'surat' -->
<input name='nik'>  <!-- input ini akan masuk ke tabel 'surat' -->
<textarea name='alamat'></textarea >  <!-- input ini akan masuk ke tabel 'alamat_domisili' -->
</form>

form 2

<form>
<input name='nama'> <!-- input ini akan masuk ke tabel 'surat' -->
<input name='nik'>  <!-- input ini akan masuk ke tabel 'surat' -->
<textarea name='orang_tua'></textarea >  <!-- input ini akan masuk ke tabel 'nama_orang_tua' -->
</form>

menurut gan hilman fungsi apa yang bisa mecah kedua nilai input itu biar masuk ke masing masing tabel yang di inginkan ? harus manual bikin satu query satu form atau ada cara lain?

saat ini saya pake cara di bawah ini

controllernya

public function input_surat(){
			$data_surat = array(
					 'jenis_surat'=> $this->input->post('jenis_surat'),
					 'tanggal_surat'=>  $this->input->post('tanggal_surat'),
					 'masa_berlaku_surat'=>  $this->input->post('masa_berlaku_surat'),
					 'keperluan_surat'=>  $this->input->post('keperluan_surat'),
					 'keterangan_surat'=>  $this->input->post('keterangan_surat'),
					 'wilayah_user_surat'=> $_SESSION['wilayah_user'],
					 'id_user_surat'=>  $_SESSION['id_user'],
					 'nama_lengkap'=> $this->input->post('nama_lengkap'),
					 'no_nik'=> $this->input->post('no_nik'),
					 'no_kk_surat'=> $this->input->post('no_kk_surat'),
					 'tempat_lahir'=> $this->input->post('tempat_lahir'),
					 'tanggal_lahir'=> $this->input->post('tanggal_lahir'),
					 'jenis_kelamin'=> $this->input->post('jenis_kelamin'),
					 'kewarganegaraan'=> $this->input->post('kewarganegaraan'),
					 'agama'=> $this->input->post('agama'),
					 'status_perkawinan'=>  $this->input->post('status_perkawinan'),
					 'pekerjaan'=>  $this->input->post('pekerjaan'),
					 'alamat_asal'=> $this->input->post('alamat_asal'),
					 'tandatangan_surat'=> $this->input->post('tandatangan_surat'),
					'jabatan_tandatangan_surat'=> $this->input->post('jabatan_tandatangan_surat')

	                          );
			$url = $this->input->post('jenis_surat');
			$additional_query = array ( 'alamat_domisili' => $this->input->post('alamat_domisili') );
			$this->load->model('Inputsurat_model');
			$this->Inputsurat_model->index($data_surat,$additional_query,$url);

		}

modelnya

public function index($data_surat,$additional_query,$url){

	    $this->db->insert('surat',$data_surat);
            $insert_id = $this->db->insert_id();
            echo $insert_id;
	     $domisili = array (
				'alamat_domisili' =>  $additional_query['alamat_domisili'],
				'id_surat_linked' =>  $insert_id
					                   );
                    $this->db->insert('surat_alamat_domisili',$domisili);
					$url = 'keterangan_domisili';
				}







redirect(base_url('surat/open/'.$url.'/'.$insert_id)); }

}
avatar Saputroandhi
@Saputroandhi

509 Kontribusi 162 Poin

Dipost 7 tahun yang lalu

Saya ngga terlalu ngerti sih, kelas databasenya yang dibikin dinamis, kalo cuma mau satu fungsi. Bisa lihat contoh pembuatan kelas database abstrak disini https://sekolahkoding.com/kelas/membuat-kelas-abstrak-pdo-database

avatar hilmanski
@hilmanski

2672 Kontribusi 2133 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban