Cara menggunakan php array to csv

CSV adalah jenis file yang sering digunakan untuk menyimpan data berupa huruf dan angka dalam bentuk plain-text. CSV (comma separated values) ini menyimpan dengan susunan baris data yang dipisah dengan karakter koma dan disimpan dalam ekstensi .csv. File csv ini sering digunakan untuk menyimpan data dalam bentuk tabel yang terdiri dari kolom dan baris. CSV ini juga sangat fleksibel sehingga bisa dengan mudah dibaca ataupun ditulis dengan aplikasi/sistem lain. Bagaimana membaca file csv ini dengan php?

File csv ini bisa dibuat dengan cara manual dengan notepad/editor text atau dengan bantuan aplikasi tabular seperti excel. Isi file csv ini jika kita lihat dengan excel disajikan dalam bentuk kolom-kolom data seperti berikut :

Cara menggunakan php array to csv

dan jika kita buka dengan notepad akan terlihat seperti ini :

Cara menggunakan php array to csv

Jika dilihat pada gambar diatas maka terlihat bahwa data yang tersimpan terdiri dari baris-baris data dengan kolom yang dipisah dengan tanda titik koma, bisa juga tiap kolom dipisah dengan tanda koma tapi cara kerjanya sama.

Sekarang sudah kita ketahui format data yang tersimpan dalam csv, kita lanjutkan cara membacanya dengan php.

Contoh isi file csv yang akan dibaca adalah file-csv.csv dengan isi :

KODE;NAMA;JUMLAH
1;BAJU KAOS;10
2;KAOS KAKI;12
3;SENDAL JEPIT;10

Cara membaca file diatas :

<?php
    $namafile="file-csv.csv";
    $pemisah=";";
    $datacsv = fopen($namafile, "r");
    while (($data = fgetcsv($datacsv, 1000, $pemisah)) !== FALSE)
    {
        echo $data[0]." - ".$data[1]." - ".$data[2]."</br>";
    }
    fclose($datacsv);
?>

Jika kita lihat kode diatas cara membacanya cukup sederhana dengan fungsi php fopen dengan mode "r" read, menudian dipindah dalam array dengan diberi nama $data dengan fungsi fgetcsv. Hasil php diatas jika dijalankan akan menghasilkan  seperti gambar berikut :

Cara menggunakan php array to csv

Jika masih bingung, silahkan coba download contoh kode php berikut : Download contoh baca csv

Upload dan baca file csv dengan php

Contoh diatas dengan kondisi file csv berada dalam satu folder phpnya. Bagaimana kalau file csv-nya diupload?

Dengan sedikit perubahan kita bisa lakukan hal yang sama pada kasus file csv yang diupload. Caranya :

Pertama buat form seperti berikut :

Cara menggunakan php array to csv

dengan kode perintah html :

<form action="" method="post" enctype="multipart/form-data" name="ContohUploadCSV" id="ContohUploadCSV">
  <p>Pilih file csv
    <input type="file" name="filecsv" id="filecsv" />
</p>
  <p>
    <input type="submit" name="button" id="button" value="Kirim" />
</p>
</form>

action pada form sengaja dikosongkan yang artinya form diatas akan diproses pada file yang sama. Kemudian kita tambahkan perintah untuk memproses file csv dengan kode berikut :

<?php
if (!empty($_FILES["filecsv"]["tmp_name"]))
{
    $namafile = $_FILES['filecsv']['tmp_name'];
    $pemisah=";";
    $datacsv = fopen($namafile, "r");
    while (($data = fgetcsv($datacsv, 1000, $pemisah)) !== FALSE)
    {
        $jml++;
        echo $data[0]." - ".$data[1]." - ".$data[2]."</br>";
    }
    fclose($datacsv);   
    echo "<SCRIPT>alert('".$jml." baris data berhasil dibaca');</SCRIPT>";
}
?>

Hanya sedikit bagian yang berubah, yang semula file csv dengan menyebutkan nama filenya, sekarang diubah menjadi bersumber dari fille yang diupload.

Export csv adalah melakukan download file dengan mengubah tipe datanya menjadi format csv. Untuk Membuat Export CSV Dari Mysql Menggunakan PHP cukup simple. Sebelum kita memulainya teman-teman siapkan terlebih dahulu data di table mysql dengan 3 kolom seperti id, name, dan email seperti di bawah ini.

Jika sudah maka langkah selanjutnya untuk Membuat Export CSV Dari Mysql Menggunakan PHP yaitu membuat struktur htmlnya seperti berikut.

 $connect = mysqli_connect("localhost", "dumet", "school", "test"); 

 $query ="SELECT * FROM import ORDER BY id desc"; 

 $result = mysqli_query($connect, $query); 

 ?> 

  

  

       

          

Membuat Export CSV Dari Mysql Menggunakan PHP 

           

           

           

       

       

          

 

               

Membuat Export CSV Dari Mysql Menggunakan PHP

               

 

                     Download File :  

               

 

               
 

                

 

                      

                         

 

                              

 

                              

 

                              

 

                         

 

                    

                     while($row = mysqli_fetch_array($result)){ 

                     ?> 

                         

 

                              

                              

  

                              

 

                          

 

                      

                    

IDNamaEmail 

               

 

          

 

       

  

Lalu langkah terakhir kita akan membuat file export.php untuk perintah mengambil semua data di table import dan di download dengan format csv sebagai berikut.

 if(isset($_POST["export"]))  { 

      $connect = mysqli_connect("localhost", "dumet", "school", "test"); 

      header('Content-Type: text/csv; charset=utf-8'); 

      header('Content-Disposition: attachment; filename=data.csv'); 

      $output = fopen("php://output", "w"); 

      fputcsv($output, array('ID', 'Name', 'Email')); 

      $query = "SELECT * from import ORDER BY id DESC"; 

      $result = mysqli_query($connect, $query); 

      while($row = mysqli_fetch_assoc($result)) 

      { 

           fputcsv($output, $row); 

      } 

      fclose($output); 

 } 

 ?> 

Jika teman-teman buka di browser maka akan tampil seperti di bawah ini.

Cara menggunakan php array to csv

Dimana file yang kita export nama filenya data.csv. teman-teman juga bisa setting sendiri namanya sesuai yang kalian mau di bagian filename pada file export.php

Demikian artikel tentang Membuat Export CSV Dari Mysql Menggunakan PHP. Smeoga dapat bermanfaat dan selamat mencoba.