CSV (nilai yang dipisahkan koma) adalah format file paling populer untuk menyimpan data dalam teks biasa untuk penggunaan offline. Umumnya, file CSV digunakan untuk mengimpor dan mengekspor data untuk memindahkan data antar program. Impor dan ekspor data adalah fitur yang paling banyak digunakan dalam aplikasi web, dan format file CSV adalah pilihan terbaik untuk itu
Impor dan ekspor, kedua fitur tersebut diimplementasikan dengan mudah dengan PHP di aplikasi web. Pada tutorial sebelumnya, kita telah membahas tentang Import File Data CSV ke database MySQL menggunakan PHP. Dalam tutorial ini, kami akan menunjukkan cara mengekspor data dari database MySQL ke file CSV menggunakan PHP
Untuk mendemonstrasikan fungsi Ekspor ke CSV, kami akan membuat skrip contoh yang akan mengekspor data anggota dari database MySQL dan menyimpannya dalam file CSV menggunakan PHP
- Mengambil data dari database menggunakan PHP dan MySQL
- Buat file CSV di PHP dan simpan data di dalamnya
- Ekspor data MySQL dan unduh dalam file CSV menggunakan PHP
Buat Tabel Basis Data
Untuk menyimpan data, tabel perlu dibuat dalam database. SQL berikut membuat tabel members_ dengan beberapa kolom dasar di database MySQL
CREATE TABLE `members` ( `id` int(11) NOT NULL AUTO_INCREMENT, `first_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL, `last_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL, `email` varchar(50) COLLATE utf8_unicode_ci NOT NULL, `gender` enum('Male','Female') COLLATE utf8_unicode_ci NOT NULL, `country` varchar(20) COLLATE utf8_unicode_ci NOT NULL, `created` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;Konfigurasi Basis Data (dbConfig. php)
dbConfig.php digunakan untuk menghubungkan database. Tentukan host basis data ($dbHost), nama pengguna ($dbUsername), kata sandi ($dbPassword), dan nama ($dbName) sesuai kredensial basis data MySQL Anda
// Database configuration$dbHost = "localhost";
$dbUsername = "root";
$dbPassword = "root";
$dbName = "codexworld";
// Create database connection
$db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName);
// Check connection
if ($db->connect_error) {
die("Connection failed: " . $db->connect_error);
}
Daftar Data dari Database MySQL (index. php)
Awalnya, semua data anggota diambil dari database dan dicantumkan dalam format tabel
- Tombol EKSPOR ditempatkan di bagian atas daftar data
- Dengan mengklik tombol Ekspor, data diekspor dari database dan memungkinkan untuk diunduh di drive lokal sebagai file CSV
Untuk skrip contoh ini, pustaka Bootstrap digunakan untuk memberi gaya pada tabel dan tombol HTML. Jadi, sertakan pustaka CSS Bootstrap dan file lembar gaya khusus (jika ada)
Ekspor Data ke File CSV menggunakan PHP (exportData. php)
File exportData.php menangani ekspor data dan proses download file CSV menggunakan PHP dan MySQL
- Mengambil data dari database MySQL
- Buat pointer file menggunakan fungsi fopen()
- Tentukan kolom tajuk dan masukkan data ke dalam file CSV
- Keluarkan setiap baris data, format baris sebagai CSV, dan tulis ke penunjuk file
- Atur Content-Type dan Content-Disposition untuk memaksa browser mendownload file daripada menampilkannya
// Load the database configuration file
include_once 'dbConfig.php';
// Fetch records from database
$query = $db->query("SELECT * FROM members ORDER BY id ASC");
if($query->num_rows > 0){
$delimiter = ",";
$filename = "members-data_" . date('Y-m-d') . ".csv";
// Create a file pointer
$f = fopen('php://memory', 'w');
// Set column headers
$fields = array('ID', 'FIRST NAME', 'LAST NAME', 'EMAIL', 'GENDER', 'COUNTRY', 'CREATED', 'STATUS');
fputcsv($f, $fields, $delimiter);
// Output each row of the data, format line as csv and write to file pointer
while($row = $query->fetch_assoc()){
$status = ($row['status'] == 1)?'Active':'Inactive';
$lineData = array($row['id'], $row['first_name'], $row['last_name'], $row['email'], $row['gender'], $row['country'], $row['created'], $status);
fputcsv($f, $lineData, $delimiter);
}
// Move back to beginning of file
fseek($f, 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($f);
}
exit;
?>
Ekspor Data ke Excel di PHP
Kesimpulan
Kode contoh ini menyediakan cara mudah untuk mengekspor data ke file CSV di PHP. Anda dapat meningkatkan atau menyesuaikan fungsionalitas skrip Ekspor ke CSV ini sesuai kebutuhan Anda. Jika Anda ingin menerapkan fungsi ekspor ini dalam skrip sisi klien, gunakan JavaScript untuk melakukannya – Ekspor Data Tabel HTML ke CSV menggunakan JavaScript
Apakah Anda ingin mendapatkan bantuan implementasi, atau memodifikasi atau meningkatkan fungsionalitas skrip ini?