Solusi Import File CSV ke MYSQL dengan PHP Codeigniter

Import data .csv (comma delimited) ke database diperlukan ketika data yang digunakan sangat banyak. Import dari data excel dengan format .csv (comma delimited) ke database memudahkan kita untuk mengolah data melalui aplikasi php dalam hal ini saya menggunakan bantuan framework codeigniter.

Langkah-langkahnya adalah sebagai berikut :

  1. Buat database baru dengan nama : importsql
  2. Buat tabel baru di dalam database importsql dengan nama : import

    CREATE TABLE `import` (
      `id` int(11) NOT NULL,
      `nama` varchar(250) NOT NULL,
      `email` varchar(250) NOT NULL,
      `input_date` varchar(250) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  3. Siapkan file excel dengan format .csv sesuai dengan field dalam tabel import diatas.
  4. Simpan file excel tersebut ke dalam format .csv (Comma delimited). Pada kolom A merupakan field ‘Nama’ sedangkan kolom B merupakan field ‘Email’.
  5. File controller
    uploadcsv.php

    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');
    
    class Uploadcsv extends CI_Controller {
    
      public function __construct()
      {
          parent::__construct();
          $this->load->helper('url');                    
          $this->load->model('m_uploadcsv','fdb');
      }
    
      public function index()
      {
        $this->data['data']= $this->fdb->view_data();
        $this->load->view('v_import', $data);
      }
    
      public function import(){
        if(isset($_POST["import"]))
        {
            $filename=$_FILES["file"]["tmp_name"];
            if($_FILES["file"]["size"] > 0)
            {
                 $file = fopen($filename, "r");
                 $baris = 0;
                 while (($importdata = fgetcsv($file, 10000, ",")) !== FALSE)
                 {
                    $data = array(
                       'name' => $importdata[0],
                       'email' => $importdata[1],
                       'input_date' => date('Y-m-d'),
                    );
                    if($baris > 0){  //jika dimulai dari baris kedua
                       $insert = $this->fdb->insert($data);
                    }
                    $baris++;
                 }                    
                 fclose($file);
                 $this->session->set_flashdata('message', 'Import berhasil !');
                 redirect('uploadcsv/index');
            }else{
                 $this->session->set_flashdata('message', 'Import gagal !');
                 redirect('uploadcsv/index');
            }
         }
      }
    }
  6. File view
    v_import.php

    <?php if($this->session->flashdata('message')){?>
              <div align="center" class="alert alert-success">      
                <?php echo $this->session->flashdata('message')?>
              </div>
            <?php } ?>
    
    <br><br>
    
    <div align="center">
    <form action="<?php echo base_url(); ?>index.php/uploadcsv/import" 
    method="post" name="upload_excel" enctype="multipart/form-data">
    <input type="file" name="file" id="file">
    <button type="submit" id="submit" name="import">Import</button>
    </form>
    <br>
    <div style="width:80%; margin:0 auto;" align="center">
    <table id="t01">
      <tr>
        <th>Nama</th>
        <th>Email</th>
        <th>Input Date</th>
      </tr>
    <?php
    if(isset($data) && is_array($data) && count($data)): $i=1;
    foreach ($data as $key => $data) { 
    ?>
      <tr>
        <td><?php echo $data['nama'] ?></td>
        <td><?php echo $data['email'] ?></td>
        <td><?php echo $data['input_date'] ?></td>
      </tr>
      <?php } endif; ?>
    </table>
    </div>
    </div>
  7. File model
    m_import.php

    <?php
    class m_import extends CI_Model
    {
        public function __construct()
        {
            parent::__construct();
        }
    
        public function insert($data)
                {
                    $this->db->insert('import', $data);
                    return TRUE;
                }
    
        public function view(){
            $query=$this->db->query("SELECT *
                                     FROM import
                                     ORDER BY id DESC");
            return $query->result_array();
        }
    }

    Sekian. Itulah cari import file csv ke database mysql dengan PHP Codeigniter.
    Terima Kasih. Semoga bermanfaat.

Referensi : 2my4edge.com

This entry was posted in Programming and tagged , , , , , . Bookmark the permalink.

Leave a Reply

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