For a long time now I've been looking for a simple to use MySQL to CSV Export script. Every single MySQL data export example I found never quite worked properly or it never added the headings to the CSV file which was extremly annoying.
With a little help from this outstanding script (Parse to CSV PHP) I was able to build one that works extremly well on any MySQL database query. (Which is great if you just want to export a small database segment, most CSV export programs just grab the whole database table).
Basically it creates a 2D array of all the data that is pulled from your query so the Parse to CSV class can then output it to a CSV file.
Good luck, I hope this saves you some time.
Code Example Below:
<?php
//Visit http://code.google.com/p/parsecsv-for-php/ for more info.
//Connect to Database and perform your select
$sql="SELECT * FROM `yourtable`";
$result=mysql_query($sql);
//Get the column names to add to the head of the CSV file
$csvHeader = array();
$columns = mysql_num_fields($result);
for($i = 0; $i < $columns; $i++) {
$i;
$csvHeader[] = mysql_field_name($result,$i);
}
# include parseCSV class.
require_once('parsecsv.lib.php');
# create new parseCSV object.
$csv = new parseCSV();
//Turn the SQL results into a 2D array
$DataArray = array();
while($row = mysql_fetch_assoc($result)) {
$DataArray[] = $row;
}
//$csvHeader = array('Car name', 'color');
$csv->output (true, 'data.csv', $DataArray, $csvHeader);
?>