andriajah Wed Mar 2021 1 year ago

Tutorial Export Data file CSV dengan PHP dan MySQL

Jadi dalam tutorial ini Anda akan belajar cara mengekspor data ke CSV dengan PHP dan MySQL. Tutorial dijelaskan dalam langkah-langkah mudah dengan demo langsung dan tautan untuk mengunduh kode sumber.

Langkah 1: Membuat Tabel Database MySQL

Seperti kita akan menangani tutorial ini dengan contoh untuk mengekspor data dalam format CSV dari tabel depelovers  database MySQL. Jadi pertama-tama kita akan membuat tabel database MySQL menggunakan kueri di bawah ini.

CREATE TABLE `developers` (
  `id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `skills` varchar(255) NOT NULL,
  `address` varchar(255) NOT NULL,
  `gender` varchar(255) NOT NULL,
  `designation` varchar(255) NOT NULL,
  `age` int(11) NOT NULL,
  `image` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Kami juga akan memasukkan beberapa record ke dalam tabel depelovers untuk menampilkannya dan mengekspornya ke file CSV.

 INSERT INTO `developers` (`id`, `name`, `skills`, `address`, `gender`, `designation`, `age`, `image`) VALUES
(1, 'Smith', '', 'Newyork', 'Male', 'Software Engineer', 34, ''),
(2, 'Steve', '', 'London', 'Female', 'Web Developer', 28, ''),
(3, 'Jhon', '', 'Delhi, India', 'Male', 'Web Developer', 30, '');

Langkah2: Get Record dari Tabel Database MySQL

Kita akan mendapatkan record dari tabel depelovers database MySQL dengan PHP dan menyimpannya ke dalam array untuk menampilkan catatan dan juga mengekspor record ke file CSV.

$query = "SELECT name, gender, address, designation, age FROM developers LIMIT 10";
$result = mysqli_query($conn, $query) or die("database error:". mysqli_error($conn));
$records = array();
while( $rows = mysqli_fetch_assoc($result) ) {
	$records[] = $rows;
}

Langkah 3: Tampilkan Record dengan Tombol Ekspor

Sekarang di file index.php, kita akan menampilkan record developers dengan tombol export.

<div class="well-sm col-sm-12">
	<div class="btn-group pull-right">	
		<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">					
			<button type="submit" id="export_csv_data" name='export_csv_data' value="Export to CSV" class="btn btn-info">Export to CSV</button>
		</form>
	</div>
</div>				  
<table id="" class="table table-striped table-bordered">
	<tr>
		<th>Name</th>
		<th>Gender</th>
		<th>Age</th>	
		<th>Designation</th>
		<th>Address</th>
	</tr>
	<tbody>
		<?php foreach($records as $record) { ?>
		   <tr>
		   <td><?php echo $record ['name']; ?></td>
		   <td><?php echo $record ['gender']; ?></td>
		   <td><?php echo $record ['age']; ?></td>   
		   <td><?php echo $record ['designation']; ?></td>
		   <td><?php echo $record ['address']; ?></td>   
		   </tr>
		<?php } ?>
	</tbody>
</table>	

Langkah 4: Export Data ke CSV dengan PHP

Sekarang akhirnya di file export.php, kita akan menangani fungsionalitas untuk mengekspor record ke file CSV menggunakan PHP.

if(isset($_POST["export_csv_data"])) {	
	$csv_file = "phpzag_csv_export_".date('Ymd') . ".csv";			
	header("Content-Type: text/csv");
	header("Content-Disposition: attachment; filename=\"$csv_file\"");	
	$fh = fopen( 'php://output', 'w' );
	$is_coloumn = true;
	if(!empty($records)) {
	  foreach($records as $record) {
		if($is_coloumn) {		  	  
		  fputcsv($fh, array_keys($record));
		  $is_coloumn = false;
		}		
		fputcsv($fh, array_values($record));
	  }
	   fclose($fh);
	}
	exit;  
}

Selesai semoga membantu Anda.

export to CVS with PHP and MySql mysql php