Halo sobat ilmu skripsi lama saya tidak upload artikel karena kesibukan pekerjaan, oke langsung saja ya. pada kesempatan kali ini saya akan mengulas tentang bagaimana melakukan import data dengan PHP dan database mysql.
Import data pada umumnya dibutuhkan untuk menginput data yang berjumlah banyak, sehingga akan sangat lama jika dilakukan penginputan data secara manual / satu persatu. Maka dari itu dibutuhkan import data dan bisanya import data dilakukan dengan menggunakan file excel.
oke langsung saja langkah apa saja yang harus dilakukan, mari simak penjelasan dibawah ini ya sobat.
untuk contoh kasus pada kali ini saya akan membuat contoh kasus import data produk, dan ada beberapa file yang harus dibuat diantaranya bisa anda lihat dibawah ini.
1. file koneksi.php
2. file index.php
3. file import.php
4. file proses-upload.php
5. file download.php
6. file hapus.php
Dari file-file di datas nanti akan saya ulas satu persatu langkah-langkah implementasinya kedalam bentuk koding PHP-Mysqli.
Sebelumnya kita membutuhkan beberapa file yang harus sobat semua download, untuk kebutuhan import data ini seperti file database sql, template excel untuk import data, dan file excel reader yang berfungsi sebagai librari untuk proses import data, sobat semua bisa download filenya dibawah ini.
database sql klik disini
template excel klik disini
excel reader klik disini
Setelah sobat semua download semua file diatas selanjutnya sobat bikin folder didalam folder htdoct dengan nama importdata atau boleh dengan nama lainnya sesuai dengan keinginan sobat semua.
Pindahkan file excel_reader2.php yang sudah di download kedalam folder importdata dan kemudian di dalam folder importdata selanjutnya bikin folder uploadexcel, dan pindahkan file template excel yang bernama dataimport.xls yang sudah di download tadi kedalam folder tersebut.
Langkah selanjutnya adalah mengimport database sql yang sudah sobat download pada link diatas, untuk proses import database caranya mudah. Buka alamat localhost/phpmyadmin dan buat database baru dengan nama sesuai dengan database sql yang di download tadi.
Dalam nama database tersebut isikan dengan nama "contoh_importdata" kemudian klik create. Langkah selanjutnya sobat tinggal melakukan proses import data dengan mengambil file sql yang sudah didownload tadi.
Berikut ada hasil database jika sudah selesai diimport, didalamnya terdapat tabel mproduk yang nantinya akan kita gunakan untuk penyimpanan data import produk
Langkah selanjutnya kita akan membuat file koneksi kedatabase, sobat semuanya bisa menyimpan file nya dengan nama koneksi.php . berikut ada file koneksi.php
koneksi.php
1 2 3 4 5 6 7 8 9 | <?php $koneksi = mysqli_connect("localhost","root","","contoh_importdata"); // Check connection if (mysqli_connect_errno()){ echo "Koneksi database gagal : " . mysqli_connect_error(); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | <h2 align="center">Import Data Excel PHP-Mysqli by ilmuskripsi.com</h2> <hr /> <table width="300" border="0"> <tr> <td width="142"> <a href="hapus.php" onclick="javascript: return confirm('Anda yakin ingin menghapus data ?')"> <input type="button" name="button" class="btn btn-danger" value="Kosongkan Data" /> </a> </td> <td width="142"> <a href="import.php"> <input type="button" name="button" class="btn btn-danger" value="Import Data" /> </a> </td> </tr> </table> <hr /> <table width="100%" border="1" align="center" rules="all"> <tr bgcolor="#CCCCCC"> <td width="31"><div align="center"><strong>No</strong></div></td> <td width="143"><strong>Kode </strong></td> <td width="284"><strong>Nama</strong></td> <td width="140"><strong>Harga</strong></td> <td width="155"><strong>Berat</strong></td> <td width="175"><strong>diskon</strong></td> <td width="184"><strong>Kondisi</strong></td> <td width="171"><strong>Keterangan</strong></td> </tr> <?php include "koneksi.php"; $no=1; $data=mysqli_query($koneksi,"select * from mproduk"); while($arraytampil=mysqli_fetch_array($data)){ ?> <tbody id="myTable"> <tr><td height="42"><div align="center"><?php echo $no++; ?></div></td> <td><?php echo " $arraytampil[kode] "; ?></td> <td><?php echo " $arraytampil[nama] "; ?></td> <td> <?php $harga=number_format($arraytampil['harga'],0, ".", "."); echo "Rp. $harga "; ?> </td> <td><?php echo " $arraytampil[berat] "; ?></td> <td><?php echo " $arraytampil[disc] "; ?> %</td> <td><?php echo " $arraytampil[kondisi] "; ?></td> <td><?php echo " $arraytampil[ket] "; ?></td> </tr> </tbody> <?php } ?> </table> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | <h2 align="center">Import Data Excel PHP-Mysqli by ilmuskripsi.com</h2> <hr /> <table width="382" border="0"> <tr> <td width="218"><a href="download.php" target="_blank"> <input type="submit" name="button" class="btn btn-danger" value="Download Template Excel" /></a></td> <td width="154"> <a href="index.php"> <input type="submit" name="button" class="btn btn-danger" value="Data Produk" /> </a></td> </tr> </table> <hr /> <form method="post" enctype="multipart/form-data" action="proses-upload.php"> <table width="1284" border="0"> <tr> <td> </td> <td><font color="#FF0000"> *SILAHKAN DOWNLOAD TEMPLATE FILE EXCEL JIKA BELUM MEMPUNYAI FILENYA <BR /> *PASTIKAN KODE PRODUK TIDAK ADA YANG KOSONG JIKA ADA YANG KOSONG MAKA PROSES IMPORT DATA GAGAL <BR /> *PASTIKAN KODE PRODUK DALAM FILE EXCEL TIDAK BOLEH SAMA DENGAN YANG LAIN, JIKA ADA YANG SAMA MAKA SALAH SATU PRODUK TIDAK AKAN MASUK KEDALAM DATABASE<BR /> *PENGISIAN KOLOM HARGA HANYA BOLEH DI ISI ANGKA TIDAK ADA TITIK KOMA </font></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td width="13"> </td> <td width="1261">Silahkan Pilih File Excel : </td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td> </td> <td><input name="filedata" type="file" required="required"></td> </tr> <tr> <td colspan="2"><hr></td> </tr> <tr> <td> </td> <td><input name="upload" type="submit" value="Import" class="btn btn-success"></td> </tr> </table> </form> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | <?php // menghubungkan dengan koneksi include 'koneksi.php'; // menghubungkan dengan library excel reader require_once "excel_reader2.php"; //// upload file xls $target = basename($_FILES['filedata']['name']) ; move_uploaded_file($_FILES['filedata']['tmp_name'], $target); // beri permisi agar file xls dapat di baca chmod($_FILES['filedata']['name'],0777); // mengambil isi file xls $data = new Spreadsheet_Excel_Reader($_FILES['filedata']['name'],false); // menghitung jumlah baris data yang ada $jumlah_baris = $data->rowcount($sheet_index=0); // jumlah default data yang berhasil di import $berhasil = 0; for ($i=2; $i<=$jumlah_baris; $i++){ // menangkap data dan memasukkan ke variabel sesuai dengan kolumnya masing-masing $kode = $data->val($i, 1); //kode $nama = $data->val($i, 2); //nama $berat = $data->val($i, 3); //berat $harga = $data->val($i, 4); //harga $disc = $data->val($i, 5); //disc $kondisi = $data->val($i, 6); //kondisi $ket = $data->val($i, 7); //ket //mengecek jika kolom kode produk pada template excel ada yang kosong $cari = mysqli_num_rows(mysqli_query($koneksi,"SELECT kode FROM mproduk WHERE kode='$kode'")); if (empty($kode)){ echo "<script>window.alert('import gagal kode produk tidak boleh ada yang kosong !')</script>"; echo "<script>window.location='".$_SERVER['HTTP_REFERER']."'</script>"; } elseif ($cari > 0){ $query=mysqli_query($koneksi,"UPDATE mproduk SET kode='$kode', nama='$nama', berat='$berat', harga='$harga', disc='$disc', kondisi='$kondisi', ket='$ket' WHERE kode='$kode'"); } else{ // input data ke database (table mproduk) $query=mysqli_query($koneksi,"INSERT into mproduk (kode,nama,berat,harga,disc,kondisi,ket) values('$kode','$nama','$berat','$harga','$disc', '$kondisi','$ket')"); } $berhasil++; } // hapus kembali file .xls yang di upload tadi unlink($_FILES['filedata']['name']); // alihkan halaman ke index.php echo "<script>window.alert('sukses import $berhasil data!')</script>"; echo "<script>window.location='index.php'</script>"; ?> |
- Jika didalam tabel mproduk belum ada data dengan kode produk yang berada dalam file excel, maka sistem akan menginputkan data baru.
- Jika status didalam tabel mproduk sudah ada kode produk yang tersimpan dan sama dengan kode produk didalam file excel maka sistem akan mengupdate, dengan kata lain. Data yang lama tidak terhapus akantetapi terupdate sesuai dengan kode produk yang sama.
- Jika didalam file excel ada kode produk yang belum terisi/kosong maka proses import akan gagal.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <?php // Downloads files // Tentukan folder file yang boleh di download $folder = "uploadexcel/"; $filename = "dataimport.xls"; $file_extension = strtolower(substr(strrchr($filename,"."),1)); // Lalu cek menggunakan fungsi file_exist if (!file_exists($folder.$filename)) { echo "<h1>Access forbidden!</h1> <p>File Sudah Tidak Ada</p>"; exit; } else if ($file_extension=='php'){ echo "<h1>Access forbidden!</h1> <p>Maaf, file yang Anda download sudah tidak tersedia atau filenya (direktorinya) telah diproteksi. <br />.</p>"; exit; } // Apabila mendownload file di folder else { //header("Cache-Control: public"); //header("Content-Description: File Transfer"); header("Content-Disposition: attachment; filename=".basename($filename)); header("Content-Type: application/octet-stream;"); //header("Content-Transfer-Encoding: binary"); readfile("uploadexcel/".$filename); } ?> |
1 2 3 4 5 6 7 | <?php include "koneksi.php"; mysqli_query($koneksi,"TRUNCATE TABLE mproduk"); echo "<script>window.alert('data berhasil di hapus!')</script>"; echo "<script>window.location='".$_SERVER['HTTP_REFERER']."'</script>"; ?> |
![]() |
Tampilan data setelah di import |
Untuk proses upload data sobat semua tinggal browse file template excel yang sobat download diawal tadi.
Emoticon