Import data csv ke database mysql dengan menggunakan PHP

Import data csv ke database mysql dengan menggunakan PHP

Dalam suatu kasus untuk mengakses dan menampilkan suatu data dari database dengan menggunakan query, dengan sintaks sebagai berikut :

select [all | distinct] pilih_daftar_kolom
[into [nama_tabel baru] ]
from nama_tabel / nama view
[where		klausa]
[group by	klausa]
[having	        klausa]
[order by	klausa]
[compute	klausa]

Artikel ini merupakan lanjutan dari post : Membuat database dan tabel dengan HeidiSQL

Untuk melakukan query database, maka isi/data pada setiap table-tabel harus sudah ada. Dan disini penulis coba berbagi trik bagaimana mudahnya meng-Import banyak data ke MySQL dari file excel. Simak baik-baik trik di bawah ini.

a. Buat file/data di MS.Excel

Cara ini akan lebih mudah daripada harus mengetik satu-persatu data di HeidiSQL.
Agar lebih memudahkan (sebagai bantuan), buat judulnya (field) di atas setiap baris.

Pembuatan Judul Bantu di Excel

Kemudian, mulailah input data secara bebas.

Pengisian Data

Delete judul baris paling atas

b. Save dengan menggunakan ekstension .csv

Save dengan Extension .CSV

Simpan dengan nama file : mahasiswa
Save as type : CSV ( Comma Delimited )
Klik ok / yes pada peringatan yang muncul.

Save .csv

c. Buat kode/script import data

Setelah Anda membuat file .csv pada excel, langkah terakhir adalah membuat kode/script yang tentunya dengan menggunakan bahasa .php dan database mysqli.

Dalam script tersebut sudah dijelaskan fungsi dari masing-masing kode. Silahkan dilihat font yang tercetak tebal. 

<head>
<title>Upload page</title>
</head>
<body>
<div align='center'>
<?php
//connect function
	$hostname  = "localhost";
	$username  = "root";
	$password  = "";
	$dbname    = "php7";
	$db = new mysqli($hostname, $username, $password, $dbname);

//Script akan berjalan jika di tekan tombol submit
if (isset($_POST['submit'])) {
//Script Upload File
if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
echo "<h2>" . "File ". $_FILES['filename']['name'] ." Berhasil di Upload" . "</h2>";
}

//Import uploaded file to Database
//Mengambil nama file temporary yang di upload
$handle = fopen($_FILES['filename']['tmp_name'], "r"); 

//Membuka file dan membacanya
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {

//Import processing 
//Data array sesuaikan dengan jumlah kolom pada CSV anda mulai dari “0” bukan “1”
$sql="INSERT into mahasiswa (no, nim, nama_m, tmp_lhr_m, jkel, alamat_m, kota_m, agama_m, telp_m, kode_jur) values
(NULL,'$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]')"; 

//Melakukan Import
$query = $db->query($sql); 
}
//Menutup CSV file
fclose($handle); 
echo "<strong><br><br>Import data selesai.</strong>";
}else { ?>

<!-- Form Untuk Upload File CSV-->
Silahkan masukan file csv yang ingin diupload<br />
<form enctype='multipart/form-data' action='' method='post'>
Cari CSV File anda:<br />
<input type='file' name='filename' size='100' required>
<input type='submit' name='submit' value='Upload'></form>
<?php }  ?>

</script>
</div>
</body>

Silahkan buka browser Anda, apabila berhasil maka akan menemui tampilan seperti ini :

Tampilkan di Jendela Browser

Cari file .csv yag telah dibuat tadi, kemudian klik Upload

Proses Upload File .CSV

Data sukses di import

Data Sukses TerUpload

Sumber : buku Membuat Web dengan PHP 7 dan Database PDO MySQLi