Postingan lainnya
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 ......
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);
}
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)); }
}
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