Import CSV Data into Mysql in Codeigniter
From
<form id="csvfile" method="post" enctype="multipart/form-data" action="<?php echo base_url()."admin/amazon_fees_detail/uploadcsvamazonfeesdetail"; ?>"> <div class="form-group"> <div class="col-sm-3"> <?php echo anchor('admin/amazon_fees_detail/createamazonfeesdetail', '<i class="fa fa-plus"></i> Create Amazon Fees Detail', array('class' => 'btn btn-block btn-primary btn-flat')); ?> </div> </div> <div class="form-group"><div class="col-sm-3"></div></div> <div class="form-group"> <label class = "col-sm-3 control-label" style="text-align: end;padding-top: 5px;">Upload CSV File</label> <div class="col-sm-2" style="text-align: end;padding-top: 5px;"> <input type="file" name="csv" id="csv" /> </div> </div> <div class="form-group"> <div class="col-sm-1"> <button type="submit" class="btn btn-primary" id="Submit">Submit</button><br><br> </div> </div> </form>
Controller
public function uploadcsvamazonfeesdetail(){ if (!empty($_POST['csv'])) { $fileName = $_FILES["csv"]["tmp_name"]; $count=0; $fp = fopen($fileName,'r') or die("can't open file"); while($csv_line = fgetcsv($fp,1024)) { $count++; if($count == 1) { continue; }//keep this if condition if you want to remove the first row for($i = 0, $j = count($csv_line); $i < $j; $i++) { $get_mws_settings = $this->mws_settings_model->getmwssettingsbymws_sellerid($csv_line[1]); $user_id = $get_mws_settings['user_id']; $insert_csv = array(); $insert_csv['date'] = (empty($csv_line[0]) ? 'null' : $csv_line[0]); $insert_csv['user_id'] = (empty($csv_line[1]) ? 'null' : $user_id); $insert_csv['invoice_no'] = (empty($csv_line[2]) ? 'null' : $csv_line[2]); $insert_csv['amount'] = (empty($csv_line[3]) ? 'null' : $csv_line[3]); $insert_csv['shipping_charge'] = (empty($csv_line[4]) ? 'null' : $csv_line[4]); $insert_csv['pg_listing_other_charge'] = (empty($csv_line[5]) ? 'null' : $csv_line[5]); $insert_csv['storage_fee'] = (empty($csv_line[6]) ? 'null' : $csv_line[6]); $insert_csv['fixed_closing_fee']= (empty($csv_line[7]) ? 'null' : $csv_line[7]); } $i++; // get mws settings details by id $get_mws_settings_details = $this->mws_settings_model->getmwssettingsbyid($insert_csv['user_id']); // calculation $contractor_amount = ($insert_csv['shipping_charge'] * $get_mws_settings_details['contractor_percentage']) / 100; $professional_amount = ($insert_csv['pg_listing_other_charge'] * $get_mws_settings_details['professional_percentage']) / 100; $rent_amount = ($insert_csv['storage_fee'] * $get_mws_settings_details['rent_percentage']) / 100; $sub_total = (float)$contractor_amount + (float)$professional_amount + (float)$rent_amount; // data array $data = array( 'date' => date('Y-m-d',strtotime($insert_csv['date'])), 'user_id' => $insert_csv['user_id'], 'invoice_no' => $insert_csv['invoice_no'], 'amount' => $insert_csv['amount'], 'shipping_charge' => $insert_csv['shipping_charge'], 'pg_listing_other_charge' => $insert_csv['pg_listing_other_charge'], 'storage_fee' => $insert_csv['storage_fee'], 'fixed_closing_fee' => $insert_csv['fixed_closing_fee'], 'contractor_amount' => $contractor_amount, 'professional_amount' => $professional_amount, 'rent_amount' => $rent_amount, 'brokerage_amount' => 0.00, 'sub_total' =>$sub_total ); // check seller settlement $get_where = array( 'date =' => $data['date'], 'user_id =' => $data['user_id'], 'invoice_no =' => $data['invoice_no'] ); $seller_settlement = $this->seller_settlement_model->get_seller_settlement_details($get_where); if (empty($seller_settlement)) { // insert amazon_fee_calculation $this->seller_settlement_model->adddata($data, 'amazon_fee_calculation'); } else { // update amazon_fee_calculation $update_where = array( 'id' => $seller_settlement['id'], 'user_id' => $seller_settlement['user_id'], 'date' => $seller_settlement['date'], 'invoice_no' => $seller_settlement['invoice_no'] ); $this->seller_settlement_model->update_seller_settlement_details($data, $update_where); } } fclose($fp) or die("can't close file"); } redirect('admin/amazon_fees_detail', 'refresh');}
Model
public function adddata($data,$table){ $this->db->insert($table,$data); $insert_id = $this->db->insert_id(); return $insert_id;}
public function get_seller_settlement_details($get_where){ return $this->db->get_where('amazon_fee_calculation',$get_where)->row_array();} function update_seller_settlement_details($data, $update_where) { $this->db->where($update_where); return $this->db->update('amazon_fee_calculation', $data);}