Untuk pembuatan multi insert kali ini saya akan menggunakan PHP CODEIGNITER sebagai bahasa dan framework yang saya pilih. Berikut adalah detail spesifikasi alat-alat dan code yang saya gunakan :
- PHP 5.4.4
- Codeigniter 2.1.4
- Xampp 1.8.0
Tanpa banyak basa-basi mari kita langsung ke praktiknya.
Langkah pertama anda buat terlebih dahulu controllernya. anda bisa langsung copy paste sintak di bawah ini. simpan pada folder controller dengan nama multi_insert.php
<?php
class Multi_Insert extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->library('form_validation'); // digunakan untuk proses validasi yg di input
$this->load->database(); // Load our cart model for our entire class
$this->load->helper(array('url','form')); // Load our cart model for our entire class
}
function index() {
$this->load->view('form_insert'); // Display the page
}
function insert_keDB() {
$this->form_validation->set_rules('nama[]', 'nama', 'required|trim|xss_clean');
$this->form_validation->set_rules('umur[]', 'umur', 'required|trim|xss_clean');
$this->form_validation->set_rules('asal[]', 'asal', 'required|trim|xss_clean');
if ($this->form_validation->run() == FALSE){
echo validation_errors(); // tampilkan apabila ada error
}else{
$nm = $this->input->post('nama');
$result = array();
foreach($nm AS $key => $val){
$result[] = array(
"nama" => $_POST['nama'][$key],
"umur" => $_POST['umur'][$key],
"asal" => $_POST['asal'][$key]
);
}
$test= $this->db->insert_batch('list_name', $result); // fungsi dari codeigniter untuk menyimpan multi array
if($test){
echo "nama sukses di input";
redirect('multi_insert'); }else{
echo "gagal di input";
}
}
}
}
/* End of file multi_insert.php */
/* Location: ./application/controllers/multi_insert.php */
?>
Setelah controller d buat, selanjutnya anda tinggal membuat formnya. anda bisa copy paste sintak di bawah ini. simpan pada folder views dengan nama form_insert.php
<form method="POST" action="<?php echo site_url('multi_insert/insert_keDB');?>">
<input type="text" name="nama[]">
<input type="text" name="umur[]">
<input type="text" name="asal[]">
<input type="text" name="nama[]">
<input type="text" name="umur[]">
<input type="text" name="asal[]">
<input type="text" name="nama[]">
<input type="text" name="umur[]">
<input type="text" name="asal[]">
<button type="submit" name="submit">Simpan</button>
</form>
Selesai.
Sekaian artikel dari saya, jika ada yang di tanyakan anda bisa menanyakannya melalui form komentar yang sudah tersedia di bawah.
Keren gan :D berhasil 2 jam nyari beginian . daoet di sini . kalo name dari tablenya ga berururan gmna gan ? jadi ane buat name di form dari database karna formnya dinamic. gmna nangkepnya ya di post nya ?
BalasHapuscara nangkep post nya sama seperti contoh di atas gan,,,
Hapusuntuk name di formnya juga sama kyk contoh di atas input type="text" name="contoh[]" , ada kurung kotak "[]" di penamaan name nya
Ini bisa untuk menangkap data bertype checkbox ya kang cahya?
BalasHapusbisa :)
Hapuskenapa : pada result[] array, mengambil data dengan $_POST['nama'] dan lainnya ? kenapa bukan $this->input->post('nama');
BalasHapusbebas sebenarnya, cuma kalau pakai post nya punya CI gak bisa langsung $this->input->post('nama')[$key], waktu itu saya pake cara itu error. Kalau mau pake post punya CI harus kyk gini :
Hapus$post = $this->input->post();
$post['nama'][$key];
:)
jika misal dicampur dengan data tunggal gimana yaa?
Hapusmisal : kuesioner yang terdapat macam type(radio,checkbox,number)
tabel kuesioner : kode, kode_pilihan, nilai.
bisa beri contohnya kang ?
itu problem saya
thanks
data tunggal gmna ?
Hapusproblemnya di bagian mana, apa datanya gak mau nyimpen atau gmna?
Jika checkbox kan harus di array terlebih dahulu, itu yang biasa say sebut data multi, sedangkan radio data tunggal.
HapusSkrip untuk menyatukan data sebelum di insert_batch, seperti apa yaa?
Jika checkbox kan harus di array terlebih dahulu, itu yang biasa say sebut data multi, sedangkan radio data tunggal.
HapusSkrip untuk menyatukan data sebelum di insert_batch, seperti apa yaa?
pertama di validasi dulu misal ada field nilai, si field nilai ini bisa radio, checkbox atau number.
Hapusjadi gini aja validasinya :
if(is_array($nilai){
echo "ini array";
}else{
echo "ini bukan array";
}
Oh yaaa..
HapusDitutorialnya pake ci 2, jika caranya dipake di ci 3 tetap sama yaa?
sama mas
Hapuskang cahya, mau tanya lagi saya ada type checkbox yang didalam checkbox ada 3 data saya bungkus dalam satu value.
BalasHapuslalu saya cacah dengan fungsi explode(), tapi yang jadi masalah type checkbox harus di looping baru explode() kan iya kan kang ? caranya gimana kang?
misal : data kode, data pilihan, data nilai.
$checkbox = $this->input->post('cb', TRUE);
$result = array();
foreach($checkbox as $cb) {
$hasil = explode("-", $checkbox[$cb]);
$result[] = array(
'kode' => $hasil[0],
'pilihan' => $hasil[1],
'nilai' => $hasil[2]
);
}
itu skrip yang saya pakai, tapi error seperti teks dibawah :
A PHP Error was encountered
Severity: Notice
Message: Undefined index: 9-01-8
Filename: controllers/Kuis.php
-------------------------------
mohon bantuannya kang
bisa liat full script nya ? (view, controller, model)
Hapussalin di pastebin dot com
mas mau minta kontanya bisa? saya boleh minta bantuan dari mas tentang multi insert?
BalasHapusfans page nya aktif ko mas, kirim inbox aja
Hapusmantap benar2 memabtu
BalasHapusKang Cahya . Saya pake ajax untuk ngirim data trus yang mesti di ubah dari source codenya di bagian apa kang ?
BalasHapusA Database Error Occurred
BalasHapusYou must use the "set" method to update an entry.
Filename: C:/xampp/htdocs/ceklistithardys/system/database/DB_query_builder.php
Line Number: 1488
mohon pencerahan Mas Cahya
BalasHapusUntuk tutorial ini sudah tidak work lagi, untuk pembaruan saya sudah tulis ulang topik yang sama tentunya dengan source yang segar kang-cahya.com/2017/05/membuat-multi-crud-dengan-codeigniter.html
HapusSemoga bermanfaat :)
multi update ada gan
BalasHapuscek disini : kang-cahya.com/2017/05/membuat-multi-crud-dengan-codeigniter.html
HapusPosting Komentar