Import CSV File Data into MySQL Database in CodeIgniter

 



Controller file

  function import()
    {
        $filename = $_FILES["file"]["tmp_name"];
        if ($_FILES['file']['size'] > 0) {
            $file              = fopen($filename, "r");
            $is_header_removed = FALSE;
            while (($importdata = fgetcsv($file, 10000, ",")) !== FALSE) {
                if (!$is_header_removed) {
                    $is_header_removed = TRUE;
                    continue;
                }
                $row = array(
                    'first_name' => !empty($importdata[1]) ? $importdata[1] : '',
                    'last_name' => !empty($importdata[2]) ? $importdata[2] : '',
                    'user_name' => !empty($importdata[3]) ? $importdata[3] : '',
                    'user_password' => !empty($importdata[4]) ? $importdata[4] : '',
                    'referal_code' => !empty($importdata[5]) ? $importdata[5] : '',
                    'earnings' => !empty($importdata[6]) ? $importdata[6] : '',
                    'profile' => !empty($importdata[7]) ? $importdata[7] : ''
                );
                $this->db->trans_begin();
                $this->user_model->add($row);
                if (!$this->db->trans_status()) {
                    $this->db->trans_rollback();
                    $response['status']  = 'error';
                    $response['message'] = 'Something went wrong while saving your data';
                    break;
                } else {
                    $this->db->trans_commit();
                    $response['status']  = 'success';
                    $response['message'] = 'Successfully added new record.';
                }
            }
            fclose($file);
        }
        redirect('user/dashboard');
    }
 

Model File

public function add($row, $dateCreated = FALSE) {
        $this->db->insert('user', $row);
        return $this->db->insert_id();
  }



View File

<button type="button" class="btn btn-info" data-toggle="modal" data-target="#myModal">Import CSV</button>

<div id="myModal" class="modal fade" role="dialog">
  <div class="modal-dialog">

    <!-- Modal content-->
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
        <h4 class="modal-title">CSV Import</h4>
      </div>
      <div class="modal-body">
        <form method="post" id="import_csv"  action="<?php echo base_url('user/import'); ?>" enctype="multipart/form-data">
         <div class="form-group">
          <label>Select CSV File</label>
          <input type="file" class="form-control" name="file" id="csv_file" required accept=".csv" />
         </div>
         <br />
         <button type="submit" name="import_csv" class="btn btn-info" id="import_csv_btn">Import CSV</button>
        </form>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
      </div>
    </div>

  </div>
</div>

Post a Comment

0 Comments