Cara Membuat Multi Insert Dengan Php Codeigniter

Cara Membuat Multi Insert Dengan Php Codeigniter
Hmm sudah lama juga saya tidak pernah posting, akhirnya sekarang saya bisa posing lagi. untuk kali ini saya akan membahas cara menyimpan data lebih dari satu atau yang biasa disebut multi insert.

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.

24/Post a Comment/Comments

  1. 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 ?

    BalasHapus
    Balasan
    1. cara nangkep post nya sama seperti contoh di atas gan,,,
      untuk name di formnya juga sama kyk contoh di atas input type="text" name="contoh[]" , ada kurung kotak "[]" di penamaan name nya

      Hapus
  2. Ini bisa untuk menangkap data bertype checkbox ya kang cahya?

    BalasHapus
  3. kenapa : pada result[] array, mengambil data dengan $_POST['nama'] dan lainnya ? kenapa bukan $this->input->post('nama');

    BalasHapus
    Balasan
    1. bebas 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 :
      $post = $this->input->post();
      $post['nama'][$key];

      :)

      Hapus
    2. jika misal dicampur dengan data tunggal gimana yaa?
      misal : kuesioner yang terdapat macam type(radio,checkbox,number)
      tabel kuesioner : kode, kode_pilihan, nilai.
      bisa beri contohnya kang ?
      itu problem saya
      thanks

      Hapus
    3. data tunggal gmna ?
      problemnya di bagian mana, apa datanya gak mau nyimpen atau gmna?

      Hapus
    4. Jika checkbox kan harus di array terlebih dahulu, itu yang biasa say sebut data multi, sedangkan radio data tunggal.

      Skrip untuk menyatukan data sebelum di insert_batch, seperti apa yaa?

      Hapus
    5. Jika checkbox kan harus di array terlebih dahulu, itu yang biasa say sebut data multi, sedangkan radio data tunggal.

      Skrip untuk menyatukan data sebelum di insert_batch, seperti apa yaa?

      Hapus
    6. pertama di validasi dulu misal ada field nilai, si field nilai ini bisa radio, checkbox atau number.

      jadi gini aja validasinya :
      if(is_array($nilai){
      echo "ini array";
      }else{
      echo "ini bukan array";
      }

      Hapus
    7. Oh yaaa..
      Ditutorialnya pake ci 2, jika caranya dipake di ci 3 tetap sama yaa?

      Hapus
  4. kang cahya, mau tanya lagi saya ada type checkbox yang didalam checkbox ada 3 data saya bungkus dalam satu value.
    lalu 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

    BalasHapus
    Balasan
    1. bisa liat full script nya ? (view, controller, model)
      salin di pastebin dot com

      Hapus
  5. mas mau minta kontanya bisa? saya boleh minta bantuan dari mas tentang multi insert?

    BalasHapus
  6. Kang Cahya . Saya pake ajax untuk ngirim data trus yang mesti di ubah dari source codenya di bagian apa kang ?

    BalasHapus
  7. A Database Error Occurred

    You must use the "set" method to update an entry.

    Filename: C:/xampp/htdocs/ceklistithardys/system/database/DB_query_builder.php

    Line Number: 1488

    BalasHapus
  8. Balasan
    1. Untuk 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

      Semoga bermanfaat :)

      Hapus
  9. Balasan
    1. cek disini : kang-cahya.com/2017/05/membuat-multi-crud-dengan-codeigniter.html

      Hapus

Posting Komentar

Lebih baru Lebih lama