Recently we have published tutorial to Export Data to Excel with PHP and MySQL and get huge response from our readers. Many of our users requested to also publish tutorial to export data to CSV using PHP and MySQL. The CSV (comma separated values) format is the most popular file format to use for data export and import functionality. Exporting data in CSV file format is also useful to allow users to save data for offline use.
So in this tutorial you will learn how to export data to CSV with PHP and MySQL. The tutorial explained in easy steps with live demo and link to download source code.
Also, read:
- Export jQuery Datatable Data To PDF, Excel, CSV & Copy with PHP
- Import CSV File into MySQL using PHP
As we have covered this tutorial with live demo to export data to CSV file with PHP and MySQL, so the file structure for this example is following.
- index.php
- export.php
Steps1: Create MySQL Database Table
As we are going to handle this tutorial with example to export data in CSV format from MySQL database table. So first we will create MySQL database table developers using below query.
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;
We will also insert few records into table to display these and export these into CSV file.
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, '');
Steps2: Get Records from MySQL Database Table
We will get records from MySQL database table developers with PHP and store into an array to display records and also export records to CSV file.
$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; }
Steps3: Display Records with Export Button
Now in index.php file, we will display developer records with export button.
<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>
Steps4: Export Data to CSV with PHP
Now finally in export.php file, we will handle functionality to export records into CSV file using 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; }
You may also like:
- Build Live Chat System with Ajax, PHP & MySQL
- Create Event Calendar with jQuery, PHP and MySQL
- Build Invoice System with PHP & MySQL
- Push Notification System with PHP & MySQL
- Create Bootstrap Cards with PHP and MySQL
- Build Content Management System with PHP & MySQL
- Convert Unix Timestamp To Readable Date Time in PHP
- Ajax Drop Down Selection Data Load with PHP & MySQL
- Inventory Management System with Ajax, PHP & MySQL
- Drag and Drop File Upload using jQuery and PHP
- Load Dynamic Content in Bootstrap Popover with Ajax, PHP & MySQL
You can view the live demo from the Demo link and can download the script from the Download link below.
Demo Download