Home » Codeigniter,Database » Input Multiple Data dengan insert_batch Codeigniter

Input Multiple Data dengan insert_batch Codeigniter

Published by Ade Kurniawan on

Input multiple adalah menginputkan banyak data atau row data ke salah satu tabel di database. Insert data atau row secara multiple ini di codeigniter dapat di buat menggunakan fungsi insert_batch. Apabila kita mencobakan dengan SQL server maka perintah yang hendak kita kerjakan ini dapat berupa perintah SQL database sebagai berikut:

INSERT INTO karyawan (id,nama,alamat) VALUES (”,’Aminah’,’jakarta’),
(”,’Beni’,’Bandung’),
(”,’Citra’,’Palembang’)


Query insert di atas dicobakan setelah membuat tabel karyawan dan dicobakan input dengan perintah sql biasa menggunakan query function insert into. hasil dari query di atas adalah pertambahan 3 data baru di tabel karyawan.

multiple insert php codeigniter
Multiple insert Codeigniter

Pembuatan perintah di atas sudah bisa disebut sebagai bentuk insert mutli data ke database karena kita menginputkan data lebih dari 1 dalam satu proses.

sebelum membuat insert batch Silahkan baca terlebih dahulu insert data codeigniter di link di bawah ini:

Query Builder Codeigniter : Insert Data

Membuat Contoh Insert batch Codeigniter

Penggunaan insert batch pada codeigniter memiliki output sama dengan query sql di atas, namun memiliki cara yang berbeda karena codeigniter menggunakan query builder. Selanjutnya untuk mengimplementasikan insert_batch codeigniter silahkan lakukan langkah berikut:

1. Buatlah tabel karyawan terlebih dahulu dengan struktur tabel seperti di bawah ini.

CREATE TABLE karyawan (
id int(11) NOT NULL AUTO_INCREMENT,
nama varchar(50) NOT NULL,
alamat varchar(100) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1

2. Buatlah controller Multiple_insert.php

<?php 
class Multiple_insert extends CI_Controller{
	
	function __construct()
	{
		parent::__construct();	
		$this->load->model('m_multiple');
	}

	public function index(){
		$data['karyawan'] = $this->m_multiple->get_karyawan()->result();
		$this->load->view('multiple_view',$data);
	}

	public function input_data(){
		$result = array();
		foreach ($_POST['nama'] as $key => $val) {
			$result[] = array( 				
				'nama' => $_POST['nama'][$key],
				'alamat' => $_POST['alamat'][$key]			
			);		
		}		
		$this->db->insert_batch('karyawan',$result);
	}
}

Controller multiple insert di atas memiliki function index yang berfungsi untuk menampilkan data yang telah di inputkan sedangkan function input_data berfungsi untuk melakukan insert_batch data array nama dan data array alamat.

Sebelum di masukkan data array nama dan alamant di looping terlebih dahulu menggunakan perintah foreach.

Output looping dari array ini yang disimpan ke database sehingga data masuk ke database dalam bentuk data multi atau banyak row. Proses penyimpanan data menggunakan insert batch ini lebih cepat dan efektif jika kita memerlukan input terhadap banyak data, keunggulan dari function insert_batch yaitu dapat melakukan input multi data dalam satu proses.

2. Tambahkan model di folder model dengan nama M_multiple.php

<?php 
class M_multiple extends CI_Model{	

	public function get_karyawan(){
		$this->db->select('*');
		$this->db->from('karyawan');		
		return $this->db->get();
	}
}

Model M_multiple.php ini hanya memiliki 1 function yaitu function untuk menampilkan data karyawan. Function untuk insert data pada insert_batch ini dibuat di controller dengan perintah $this-db->insert_batch(‘nama_tabel’,$data). sehingga untuk input kita tidak membuatn perintah insert lagi.

3. Untuk menyelesiakan multiple insert dengan codeigniter ini kita tambahakan file multiple_view.php dalam directory views sebagai berikut:

<!doctype html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="icon" href="<?=base_url()?>/bootstrap/images/indonetsource.ico" type="image/gif">
    <link rel="stylesheet" href="<?php echo base_url('bootstrap/font-awesome/css/font-awesome.min.css')?>">     
    <link rel="stylesheet" href="<?php echo base_url('bootstrap/css/easion.css');?>">       
    <link rel="stylesheet" href="<?php echo base_url('bootstrap/dist/css/bootstrap.min.css')?>"/> 
    <title>Indonetsource - Date format Codeigniter</title>
</head>

<body>
    <div class="dash">
        <div class="dash-nav dash-nav-dark">
            <header>
                <a href="#" class="menu-toggle">
                    <i class="fa fa-bars"></i>
                </a>
                <a href="https://www.indonetsource.com/" class="easion-logo" target="_blank" ><img width="30px" src="<?php echo base_url('bootstrap/images/indonetsource.png') ?>"><span>&nbspIndonetsource</span></a>
            </header>
            <nav class="dash-nav-list">
                <a href="https://www.indonetsource.com/input-multiple-data-dengan-insert_batch-codeigniter/" target="_blank" class="dash-nav-item">
                    <i class="fa fa-home"></i> Dashboard </a>
                <div class="dash-nav-dropdown">
                    <a href="#" class="dash-nav-item dash-nav-dropdown-toggle">
                        <i class="fa fa-server"></i> Example</a>
                    <div class="dash-nav-dropdown-menu">
                        <a href="<?php echo base_url('multiple_insert') ?>" class="dash-nav-dropdown-item">Input Data Multiple</a>
                    </div>
                </div>
            </nav>
        </div>
        <div class="dash-app">
            <header class="dash-toolbar">
                <a href="#" class="menu-toggle">
                    <i class="fa fa-bars"></i>
                </a>
                <a href="#!" class="searchbox-toggle">
                    <i class="fa fa-search"></i>
                </a>
                <form class="searchbox" action="#!">
                    <a href="#!" class="searchbox-toggle"> <i class="fa fa-arrow-left"></i> </a>
                    <button type="submit" class="searchbox-submit"> <i class="fa fa-search"></i> </button>
                    <input type="text" class="searchbox-input" placeholder="type to search">
                </form>
                <div class="tools">
                    <a href="#!" class="tools-item">
                        <i class="fa fa-bell"></i>                        
                    </a>
                    <div class="dropdown">
                        <a href="#" class="tools-item" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                            <i class="fa fa-user"></i>
                        </a>
                        <div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenu1">
                            <a class="dropdown-item" href="#">hello...!!</a>
                        </div>
                    </div>
                </div>
            </header>
            <main class="dash-content">
                <div class="container-fluid">
                    <div class="card easion-card">
                        <div class="card-header">
                            <div class="easion-card-icon">
                                <i class="fa fa-edit"></i>
                            </div>
                            <div class="easion-card-title"> Input Data Multiple</div>
                        </div>
                        <div class="card-body">
                            <form action="multiple_insert/input_data" method="post">
                                <?php for ($i=0; $i<3; $i++) { ?>                                 
                                <div class="form-group">                                    
                                    <div class="input-group col-sm-8">
                                    <label class="col-sm-2" >Nama </label>              
                                        <input class="col-sm-4" type="text" name="nama[]" class="form-control" >
                                    </div>
                                </div>
                                <div class="form-group">                                    
                                    <div class="input-group col-sm-8">
                                    <label class="col-sm-2" >Alamat </label>             
                                        <input class="col-sm-5" type="text" name="alamat[]" class="form-control">
                                    </div>
                                </div>                      
                                <br/>
                                <?php
                                    }
                                ?>  
                                <div class="form-group">
                                    <button type="submit" class="btn btn-primary  btn-sm submit-reset">Simpan </button>                                                
                                </div>  
                            </form>  
                            <div class="col-sm-5">
                                <table class="table table-bordered">
                                   <tr>
                                       <th>No</th>
                                       <th>Nama</th>
                                       <th>Alamat</th>                                   
                                   </tr>
                                   <?php 
                                    $no = 1;
                                   foreach ($karyawan as $key ): ?>
                                    <tr>
                                        <td><?php echo $no++ ?></td>
                                        <td><?php echo $key->nama; ?></td>
                                        <td><?php echo $key->alamat; ?></td>                                    
                                    </tr>
                                   <?php endforeach ?>
                               </table>
                           </div>                    
                        </div>
                     </div>
                </div>
            </main>
        </div>
    </div>
    <script src="<?php echo base_url('bootstrap/js/jquery-3.3.1.slim.min.js')?>" ></script>
    <script src="<?php echo base_url('bootstrap/js/popper.min.js')?>"></script>
    <script src="<?php echo base_url('bootstrap/js/bootstrap.min.js')?>"></script>
    <script src="<?php echo base_url('bootstrap/js/easion.js')?>"></script>    
</body>

</html>

Script view_multiple yang telah di tulis ini menggunakan perulangan for. Penggunaan perulangan for telah membuat kolom input nama dan alamat di ulang sebanyak tiga kali seperti script view_multiple.php di atas.


4 Comments

Alung · December 28, 2020 at 3:23 am

ini ci 3 atau ci 4 mas?

    Ade Kurniawan · June 9, 2021 at 5:03 am

    ini menggunakan ci 3

Muhammad · June 26, 2021 at 7:17 am

Terimakasih ilmunya

    Ade Kurniawan · June 26, 2021 at 8:03 am

    Ok Sama-sama

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *