Minggu, 24 Februari 2013

Import Excel to Database Menggunakan PHP dengan Filtering Data Besyarat

1 komentar
Upload File (Import) data Excel ke dalam Database ... Namun dengan sentuhan / catatan:
  1. Jika terdapat duplikasi data dalam file excel (NIM), maka akan difilter, dan akan dimasukkan dalam tabel gagal dengan keterangan "Duplikasi NIM".
  2. Jika terdapat NIM yang kosong, maka akan difilter juga dan dimasukkan ke dalam tabel gagal dengan keterangan "NIM Kosong".
  3. Jika ke-2 syarat diatas lolos, maka akan disimpan ke dalam tabel sukses (mahasiswa)..
Jadi intinya, memudahkan si pengguna untuk mengetahui "Mana data yang berhasil diupload dan Mana data yang gagal diupload", karena ke-2 hal tersebut telah dipisahkan secara otomatis. Simpel kan.. :D namun cukup membuat pusing khususnya untuk para pemula.. kita langsung saja...

Siapkan database dan 2 tabel dengan spesifikasi seperti berikut:
tmhs
nim | varchar(10)
nama | varchar(100)
alamat | varchar(100)
jurusan | varchar(50)
hp | varchar(20)

tgagal
nim | varchar(10)
nama | varchar(100)
keterangan | varchar(100)

download file excel Reader terlebih dahulu disini. file tersebut digunakan untuk mampu membaca data file excel.

Buat file php dengan nama:
form_import.php

Import Data Excel

Pilih File Excel:

dan
proses_import.php
// menggunakan class phpExcelReader
include "excel_reader.php";
// koneksi ke MySQL
mysql_connect("localhost","root","root");
mysql_select_db("dbmhs");
// membaca file excel yang diupload
$data = new Spreadsheet_Excel_Reader($_FILES['userfile']['tmp_name']);
// membaca jumlah baris dari data excel
$baris = $data->rowcount($sheet_index=0);
// import data excel mulai baris ke-2 
// (karena baris pertama adalah nama kolom)
for ($i=2; $i <= $baris; $i++){
    $nim = $data->val($i, 1); 
    $nama = $data->val($i, 2);
    $alamat = $data->val($i, 3);
    $jurusan = $data->val($i, 4);
    $hp = $data->val($i, 5);
    
    $cari = mysql_num_rows(mysql_query("SELECT nim FROM tmhs WHERE nim = '$nim'"));
    
    if (empty($nim)){
        $hasil = mysql_query("INSERT INTO tgagal(nim,nama,keterangan) VALUES('$nim','$nama','NIM Kosong')");
    }
    elseif ($cari > 0){
        $hasil = mysql_query("INSERT INTO tgagal(nim,nama,keterangan) VALUES('$nim','$nama','Duplikasi NIM')");
    }
    else{
        // setelah data dibaca, sisipkan ke dalam tabel tsukses
        $hasil = mysql_query("INSERT INTO tmhs(nim,nama,alamat,jurusan,hp) VALUES('$nim','$nama','$alamat','$jurusan','$hp')");
    }
}

echo "Berhasil";
?>

langsung saja bisa Anda jalankan melalui http://localhost/namaFolder/form_import.php

Klik disini untuk mengunduh file excelnya dalam format yang ditentukan

Skrip yang dibuat diatas ditulis dengan menggunakan database MySQL, namun jika Anda menginginkan menggunakan database SQL Server, cukup ubah saja mysql nya menjadi mssql .. 

semoga tutorial kali ini dapat memberikan manfaat kepada Anda

oh iya, jika Anda tak mau direpotkan oleh pembuatan skrip, source code lengkap siap pakai nya dapat Anda download disini.

Sumber :