CodeIgniter Insert Batch Tutorial



Codeigniter Insert Batch : How To Code

In this tutorial, we will understand the basic process of insert batch in codeigniter user form input. Getting data from user form input is slightly different, so you will learn how to Batch Insert, input array in form control, and saving batch records in database etc. in this codeigniter insert batch tutorial.

CodeIgniter Insert Batch Tutorial

 

Follow the basic steps for codeigniter insert batch.

 

Step 1.

Set up the basic configuration of codeigniter framework on localhost like database setting, base url and url helper, etc. If you are unable to configure, then please refer this link: Codeigniter basic setup

 

Step 2.

Create a view file under the folder views/batch_view.php and write the following code. This view code contains add more record facility using javascript so its very beneficial and an advance feature.

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Trycatch Classes php training in mumbai</title>
        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
        <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-material-design/0.3.0/css/material-fullpalette.min.css" rel="stylesheet">
        <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
  </head><body><div class="container">
<div class="jumbotron">
<h2>Trycatch Classes php training | <small>Codeigniter batch insert tutorial</small></h2>
<a class="btn btn-primary btn-lg" href="http://TryCatchClasses.com/">Learn more</a> Author: <a href="https://www.facebook.com/TryCatchClasses/">by TryCatch Classes</a> 
</div><div class="row jumbotron">
<form method="POST" action="" id="frm_submit">
<div class="col-md-12"><fieldset><legend>Journey Details</legend>
<!-- Text input-->
<table style="width: 100%" class="table">
<thead><tr><th>Sr.No.</th>
<th>Date</th>
<th>Type</th>
<th>Passenger</th>
<th>From</th>
<th>To</th>
<th>Ticket No.</th>
<th>Amount</th></tr></thead>
<tbody id="table-details"><tr id="row1" class="jdr1">
<td><span class="btn btn-sm btn-default">1</span><input type="hidden" value="6437" name="count[]"></td>
<td><input type="text" required="" class="form-control input-sm datepicker" placeholder="Date" name="jdate[]"></td>
<td><input type="text" required="" class="form-control input-sm" placeholder="Travel by" name="jtype[]"></td>
<td><input type="text" required="" data-parsley-type="number" class="form-control input-sm" placeholder="Paasenger count" name="jpassanger[]"></td>
<td><input type="text" required="" class="form-control input-sm" placeholder="Depart from" name="jfrom[]"></td>
<td><input type="text" required="" class="form-control input-sm" placeholder="Destination" name="jto[]"></td>
<td><input type="text" required="" class="form-control input-sm" placeholder="Ticket No." name="jticket_no[]"></td>
<td><input type="text" required="" data-parsley-type="digits" class="form-control input-sm" placeholder="Amount" name="jamount[]"></td>
</tr>
</tbody>
</table>
<button class="btn btn-primary btn-sm btn-add-more">Add More</button>
<button class="btn btn-sm btn-warning btn-remove-detail-row"><i class="glyphicon glyphicon-remove"></i></button>
</fieldset>                     
</div>
<div class="col-md-12">
<hr>
<input class="btn btn-success pull-right" type="submit" value="submit" name="submit">
</div>
</form>
</div>
<div class="row">
<div class="alert alert-dismissable alert-success" style="display: none">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Data inserted successfully</strong>.
</div>
<div class="alert alert-dismissable alert-danger" style="display: none">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Sorry something went wrong</strong>
</div>
</div>
</div>
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20src%3D%22https%3A%2F%2Fcode.jquery.com%2Fjquery-2.1.4.min.js%22%3E%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;script&gt;" title="&lt;script&gt;" />
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20src%3D%22https%3A%2F%2Fmaxcdn.bootstrapcdn.com%2Fbootstrap%2F3.3.5%2Fjs%2Fbootstrap.min.js%22%3E%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;script&gt;" title="&lt;script&gt;" />
        <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20src%3D%22https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fbootstrap-material-design%2F0.3.0%2Fjs%2Fmaterial.min.js%22%3E%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;script&gt;" title="&lt;script&gt;" />
        <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20src%3D%22https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fjqueryui%2F1.11.4%2Fjquery-ui.min.js%22%3E%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;script&gt;" title="&lt;script&gt;" />
        <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%24(document).ready(function%20()%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24(%22body%22).on('click'%2C%20'.btn-add-more'%2C%20function%20(e)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20e.preventDefault()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20%24sr%20%3D%20(%24(%22.jdr1%22).length%20%2B%201)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20rowid%20%3D%20Math.random()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20%24html%20%3D%20'%0A%3C%2Fp%3E%0A%3Ctr%20class%3D%22jdr1%22%20id%3D%22'%20%2B%20rowid%20%2B%20'%22%3E'%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'%0A%3C%2Fp%3E%0A%3Ctd%3E%3Cspan%20class%3D%22btn%20btn-sm%20btn-default%22%3E'%20%2B%20%24sr%20%2B%20'%3C%2Fspan%3E%3Cinput%20type%3D%22hidden%22%20name%3D%22count%5B%5D%22%20value%3D%22'%2BMath.floor((Math.random()%20*%2010000)%20%2B%201)%2B'%22%3E%3C%2Ftd%3E%0A%3Cp%3E%0A%0A'%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'%0A%3C%2Fp%3E%0A%3Ctd%3E%3Cinput%20type%3D%22text%22%20name%3D%22jdate%5B%5D%22%20placeholder%3D%22Date%22%20class%3D%22form-control%20input-sm%20datepicker%22%3E%3C%2Ftd%3E%0A%3Cp%3E%0A%0A'%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'%0A%3C%2Fp%3E%0A%3Ctd%3E%3Cinput%20type%3D%22text%22%20name%3D%22jtype%5B%5D%22%20placeholder%3D%22Travel%20by%22%20class%3D%22form-control%20input-sm%22%3E%3C%2Ftd%3E%0A%3Cp%3E%0A%0A'%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'%0A%3C%2Fp%3E%0A%3Ctd%3E%3Cinput%20type%3D%22text%22%20name%3D%22jpassanger%5B%5D%22%20placeholder%3D%22Paasenger%20count%22%20class%3D%22form-control%20input-sm%22%3E%3C%2Ftd%3E%0A%3Cp%3E%0A%0A'%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'%0A%3C%2Fp%3E%0A%3Ctd%3E%3Cinput%20type%3D%22text%22%20name%3D%22jfrom%5B%5D%22%20placeholder%3D%22Depart%20from%22%20class%3D%22form-control%20input-sm%22%3E%3C%2Ftd%3E%0A%3Cp%3E%0A%0A'%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'%0A%3C%2Fp%3E%0A%3Ctd%3E%3Cinput%20type%3D%22text%22%20name%3D%22jto%5B%5D%22%20placeholder%3D%22Destination%22%20class%3D%22form-control%20input-sm%22%3E%3C%2Ftd%3E%0A%3Cp%3E%0A%0A'%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'%0A%3C%2Fp%3E%0A%3Ctd%3E%3Cinput%20type%3D%22text%22%20name%3D%22jticket_no%5B%5D%22%20placeholder%3D%22Ticket%20No.%22%20class%3D%22form-control%20input-sm%22%3E%3C%2Ftd%3E%0A%3Cp%3E%0A%0A'%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'%0A%3C%2Fp%3E%0A%3Ctd%3E%3Cinput%20type%3D%22text%22%20name%3D%22jamount%5B%5D%22%20placeholder%3D%22Amount%22%20class%3D%22form-control%20input-sm%22%3E%3C%2Ftd%3E%0A%3Cp%3E%0A%0A'%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'%3C%2Ftr%3E%0A%3Cp%3E%0A%0A'%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%24(%22%23table-details%22).append(%24html)%3B%0A%0A%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%24(%22body%22).on('click'%2C%20'.btn-remove-detail-row'%2C%20function%20(e)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20e.preventDefault()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if(%24(%22%23table-details%20tr%3Alast-child%22).attr('id')%20!%3D%20'row1')%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24(%22%23table-details%20tr%3Alast-child%22).remove()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%24(%22body%22).on('focus'%2C%20'%20.datepicker'%2C%20function%20()%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%24(this).datepicker(%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20dateFormat%3A%20%22yy-mm-dd%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%24(%22%23frm_submit%22).on('submit'%2C%20function%20(e)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20e.preventDefault()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%24.ajax(%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20url%3A%20'%3C%3Fphp%20echo%20base_url()%20%3F%3Ewelcome%2FbatchInsert'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20'POST'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20data%3A%20%24(%22%23frm_submit%22).serialize()%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D).always(function%20(response)%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20r%20%3D%20(response.trim())%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if(r%20%3D%3D%201)%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24(%22.alert-success%22).show()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24(%22.alert-danger%22).show()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;script&gt;" title="&lt;script&gt;" />
    </body>
</html>

 

Step 3.

Nice, your view should look like the image shown in the start of this article. Now create php controller file under the directory controller folder/batch_controller.php and write following code.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message');
    }
         
         
        public function batchInsert()
    {
            $this->load->model('Batch');
            $result = $this->Batch->batchInsert($_POST);
            if($result){
                echo 1;
            }
            else{
                echo 0;
            }
            exit;
    }
}
 
/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */

In this code section we will load a php model file and get result after submit data. so in the next step create php model file.

 

Step 4.

After Controller code, we will create a php model for call to corresponding function. So create a file Batch.php under the directory models/ and right the following code.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
class Batch extends CI_Model {
     
    function batchInsert($data){
        //get bill entries 
        $count = count($data['count']);
         
        for($i = 0; $i<$count; $i++){ $entries[] = array( 'date'=>$data['jdate'][$i],
                'type'=>$data['jtype'][$i],
                'passenger'=>$data['jpassanger'][$i],
                'from_'=>$data['jfrom'][$i],
                'to_'=>$data['jto'][$i],
                'ticket'=>$data['jticket_no'][$i],
                'amount'=>$data['jamount'][$i],
                );
        }
        $this->db->insert_batch('journey', $entries); 
        if($this->db->affected_rows() > 0)
            return 1;
        else
            return 0;
        }
}

 

In this code if data is inserted successfully, model function will return true otherwise false.

Don’t forget to share your doubts in the comment box and also share this post on social media and with your friends becaus“You share, I share, let’s make the world aware”.

You may want to take a look at the following related posts:

Also for more awesome tutorials, please don’t forget to like our facebook page TryCatch Classes.

Bonus: We also give training on following topics:

                       1. Angular Training in Mumbai.

2. Bootstrap Training Course in Mumbai.

3.  Web Designing Training in Mumbai.

4. UI / UX Training.

5. IOS Training Institute in Mumbai.