Postingan lainnya
Input data jenis array hanya tersimpan 1 character saja codeigniter
permisi semua..
saya punya form input data customer, di dalam form tersebut berisikan data detail perusahaan & data contact person yang masing-masing berbeda table (tbcp = data contact person & tbcust = data detail perusahaan), di form saya menambahkan button add new contact person dimana button tersebut untuk contact person yang lebih dari satu. saat disubmit, data berhasil input ke 2 tabel tersebut yang menjadi permasalahannya adalah di tabel 'tbcp' ada satu row yang datanya hanya tersimpan 1 character saja, row tersebut adalah row foreign key antara 'tbcp' dan 'tbcust'
berikut detailnya -controller
public function post_multiple_table(){
$this->load->model('Multiple_model', 'multi_model', TRUE);
$cust_input_data = array();
$cust_input_data['nama_pt'] = $this->input->post('nama_pt');
$cust_input_data['tipe'] = $this->input->post('tipe');
$cust_input_data['alamat'] = $this->input->post('alamat');
$cust_input_data['email_cust'] = $this->input->post('email_cust');
$cust_input_data['notelp'] = $this->input->post('notelp');
$cust_input_data['nofax'] = $this->input->post('nofax');
$this->form_validation->set_rules('nama_orang[]', 'nama_orang', 'required|trim|xss_clean');
$this->form_validation->set_rules('nohp[]', 'nohp', 'required|trim|xss_clean');
$this->form_validation->set_rules('email[]', 'email', 'required|trim|xss_clean');
if ($this->form_validation->run() == FALSE){
echo validation_errors(); // tampilkan apabila ada error
}else{
$nm = $this->input->post('nama_orang');
$result = array();
foreach($nm AS $key => $val){
$result[] = array(
"nama_pt" => $_POST['nama_pt'][$key],
"nama_orang" => $_POST['nama_orang'][$key],
"nohp" => $_POST['nohp'][$key],
"email" => $_POST['email'][$key]
);
}
}
-model
public function create_multiple_tabel($nama_pt, $nama_orang){
$this->db->insert('tbcust', $nama_pt);
$this->db->insert_batch('tbcp', $nama_orang);
}
-SS database & form tabel tbcust tabel tbcp form new customer
mohon bantuannya, terima kasih
Tanggapan
- baca aturan main cara menampilkan gambar 2. apakah cuma satu data yang tidak tampil? atau semua data? kalau cuma satu, cek sumber data kamu, bisa jadi dari sumbernya yang salah
maaf sebelumnya, karena saya baru pertama kali post di forum, saya sudah jawab dan perbaiki ya mas, terima kasih
semua data seperti itu sampai sekarang? setiap kamu masukkan? atau cuma masalah sekali muncul?
di kode kamu ada variable "$cust_input_data" tapi ngga diapa-apain, itu untuk apa?. Bagian memasukkan nama_pt nya dimana?
"$cust_input_data" untuk input data ke table tbcust, nama_pt ke table tbcust diinput melalui "$cust_input_data", dan nama_pt ke table tbcp diinput melalui "$nm = $this->input->post('nama_orang');",
apakah ada saran lain mas untuk multiple insert nya?
2 Jawaban:
coba debug pelan-pelan, saat kamu di bagian ini: <pre> $nm = $this->input->post('nama_orang'); //keluarkan isi $nm dengan die(var_dump($nm)); </pre>
//sudah sesuai dengan yang kamu mau atau belum ? dari sini kelihatan cara kamu ngeloop dan ambil datanya nanti seperti apa
Jawaban Terpilih
[solved]
sudah bisa terjawab dengan merubah controller & modelnya
-controller
<pre> public function simpandata() { //Untuk Validasi $this->load->library('javascript'); $this->load->model('Cust_model'); $username = $this->session->userdata('username'); $data['username'] = $username; $this->Cust_model->simpancs();
$this-&gt;load-&gt;view('sales/v_header');
$this-&gt;load-&gt;view('sales/v_customer',$data);
$this-&gt;load-&gt;view('sales/v_footer');
}
</pre>
-model
<pre> function simpancs() { $CI =& get_instance(); $CI->load->database('default'); if(!empty($_POST['nama_pt'])) { $nama_pt = $_POST['nama_pt']; $tipe = $_POST['tipe']; $alamat = $_POST['alamat']; $email = $_POST['email']; $notelp = $_POST['notelp']; $nofax = $_POST['nofax']; $username = $_POST['username'];
//insert
$sql = "insert into cust(nama_pt,tipe,alamat,email,notelp,nofax,username)
values('$nama_pt','$tipe','$alamat','$email','$notelp','$nofax','$username')";
$this-&gt;db-&gt;query($sql);
$nohp = $_POST['nohp'];
$keys = count($nohp);
for($i = 0; $i &lt; $keys; $i++)
{
$nama_orang = $_POST['nama_orang'][$i];
$divisi = $_POST['divisi'][$i];
$email_cp = $_POST['email_cp'][$i];
$nohp = $_POST['nohp'][$i];
if ($nohp&gt;0)
{
$sqli="insert into cp(nama_pt,nama_orang,divisi,email_cp,nohp)
values('$nama_pt','$nama_orang','$divisi','$email_cp','$nohp')";
$this-&gt;db-&gt;query($sqli);
}
}
return true;
}
else
{
return false;
}
}
</pre>