I’m trying to export a MySQL Table to a CSV, but also perform formatting on it as well.
There’s a column called “meta_value” in my table, that is the only column I want. I also want to format the data in that column into a csv.
The data in the “meta_value” column looks like this:
["3C9d9SlArYcUsAWszgL68xEEveSzCDNzfJ2hYqPg","Retailer","$1M - $5M","22","10-20","Amazon Canada","InfiPlex","I am a past client","Data Extraction","Browser Search","i like comments","[email protected]"]
Upon export, I would like to remove the first randomly generated string, and then for the others, I would like to separate them out into their own columns within the .csv itself.
My PHP is below that runs through connecting to the MySQL DB, table, and exporting the CSV. I’m just not sure how to do the fancy formatting that I outlined above.
Thank you.
[php] <?php
/* vars for export */
// database record to be exported
$db_record = 'XXXXXXXXX';
// optional where query
$where = 'WHERE 1 ORDER BY 1';
// filename for export
$csv_filename = 'db_export_'.$db_record.'_'.date('Y-m-d').'.csv';
// database variables
$hostname = "localhost";
$user = "XXXXXXXXX";
$password = "XXXXXXXXX";
$database = "XXXXXXXXX";
// Database connecten voor alle services
mysql_connect($hostname, $user, $password)
or die('Could not connect: ' . mysql_error());
mysql_select_db($database)
or die ('Could not select database ' . mysql_error());
// create empty variable to be filled with export data
$csv_export = '';
// query to get data from database
$query = mysql_query("SELECT * FROM ".$db_record." ".$where);
$field = mysql_num_fields($query);
// create line with field names
for($i = 0; $i < $field; $i++) {
$csv_export.= mysql_field_name($query,$i).';';
}
// newline (seems to work both on Linux & Windows servers)
$csv_export.= '
';
// loop through database query and fill export variable
while($row = mysql_fetch_array($query)) {
// create line with field values
for($i = 0; $i < $field; $i++) {
$csv_export.= '"'.$row[mysql_field_name($query,$i)].'";';
}
$csv_export.= '
';
}
// Export the data and prompt a csv file for download
header("Content-type: text/x-csv");
header("Content-Disposition: attachment; filename=".$csv_filename."");
echo($csv_export);
?>[/php]