Ekspor CSV menggunakan PHP dan MySQL

9 Desember 2021

PHPMySQL

Pada tutorial ini kita akan belajar tentang cara ekspor CSV menggunakan PHP dan MySQL. Sampel database yang akan digunakan dapat diunduh pada link berikut:

https://github.com/datacharmer/test_db

Setelah database terunduh, kemudian buat projek folder. Misal kita berinama php_mysql_export_csv. Setelah folder dibuat tambahkan file connection.php di folder tersebut. File ini digunakan untuk menghubungi PHP dan MySQL. Kemudian isi dengan potongan kode di bawah ini:

<?php

// sesuaikan dengan setting di pc/laptop kalian
$servername = 'localhost'; 
$username = 'root'; 
$password = '';
$database = 'employee';

// buat koneksi database
$connection = mysqli_connect($servername, $username, $password, $database);

// cek koneksi
if (!$connection) {
    die("Connection failed: " . mysqli_connect_error());
} 

Sesuaikan dulu file diatas dengan setting yang terdapat di pc/laptop kalian. Setelah itu cek terlebih dahulu dengan menjalankan perintah berikut di terminal/cli:

$ php connection.php

Jika tidak ada tulisan apapun yang muncul, maka file konfigurasi sudah berhasil. Kalo masih belum, cek kembali dan sesuaikan isi dari file tersebut. Setelah koneksi sukses langkah berikutnya adalah membuat file download_csv.php yang isinya sebagai berikut:

<?php

include 'connection.php';

$query = $connection->query('SELECT * FROM employees');

if ($query->num_rows > 0) {
    $filename = 'ekspor_csv_' . date('d-m-Y') . '.csv';
    $delimiter = ',';

    // Create file pointer
    $file = fopen('php://memory', 'w');

    $fields = array('name', 'email');

    fputcsv($file, $fields, $delimiter);

    while ($row = $query->fetch_object()) {
        $lineData = array("$row->first_name  $row->last_name", $row->last_name);
        fputcsv($file, $lineData, $delimiter);
    }

    // Move back to beginning of file
    fseek($file, 0);

    // Set headers to download file rather than displayed
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="' . $filename . '";');

    // Output all remaining data on a file pointer
    fpassthru($file);
}

exit;

Setelah file export_csv.php dibuat, kita bisa jalankan perintah di bawah ini melalui terminal/cli.

$ php -S localhost:8000
$ curl localhost:8000/export_csv.php > export.csv

Hasil file ekspor dapat dilihat di export.csv di folder projek yang telah kita buat. Selain melalui cli/terminal, kita juga dapat mengunduh file csv tersebut melalui browser. Caranya adalah dengan membuka link berikut.

Cukup sekilian tutorial ini, semoga bermanfaat.

Sumber: https://www.codexworld.com/export-data-to-csv-file-using-php-mysql/

This blog is made using Gatsby.js