blog.calebnance.com

It's So Loud, Inside My Head...

Friday, 09 December 2011 12:15

Creating A CSV File In PHP

Written by  Caleb Nance

Today I want to talk about how you would go about creating a CSV file from scratch, with all of your data from the database.

First off we need a little PHP code, very simple and hopefully you can understand what it is doing. To create the file we are going to be using the fopen() to check if a file is there and writable, and if it is not there we want to create it.

<?php

// Create CSV file
$csv_folder = BASEURLHERE.'/csv';
$filename = "sales";
$CSVFileName = $csv_folder.'/'.$filename.'.csv';
$FileHandle = fopen($CSVFileName, 'w') or die("can't open file");

fclose($FileHandle);

$fp = fopen($CSVFileName, 'w');

foreach ($csv_fields as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);

?>

So above you see the variable, $csv_fields, and it hasn't been declared. This is the variable that I am using to store all of my data from the data base in. Remember this needs to be declared BEFORE the code above, I just wanted to break it up for a little easier viewing of both. Below we start the array() variable $csv_fields, and add the header of the CSV file, this is not a needed step at all, but if you want to have the top of the columns labeled, this is how it is done.

$csv_fields  = array();

// Add header of fields
// this step is optional (more for client view)
$csv_fields[0] = array();
$csv_fields[0][] = 'Product ID';
$csv_fields[0][] = 'Product Name';
$csv_fields[0][] = 'Category';

Now we want to actually have the data into the variable $csv_fields.. Next does just that.

$database_returned_data = YOUR QUERY;

// Your data should be like this
$database_returned_data = Array (
[0] => Array ( [0] => 1 [1] => Headphones [2] => 3 )
[1] => Array ( [0] => 2 [1] => CD [2] => 4 )
[2] => Array ( [0] => 3 [1] => iTouch [2] => 1 ) );

$i = 1;
foreach($database_returned_data as $row):
$csv_fields[$i][0] = $row[0];
$csv_fields[$i][1] = $row[1];
$csv_fields[$i][2] = $row[2];
$i++;
endforeach;
Last modified on Friday, 09 December 2011 14:15
blog comments powered by Disqus