J'utilise et ça fonctionne bien, la fonction ci-dessous pour générer un fichier CSV.
Mon problème est qu'il y a des champs avec des chiffres qui correspondent à des catégories et je veux exporter un cdv avec la catégorie et pas avec le code de la catégorie.
Par exemple la deuxième colonne j'ai des "1", des "2", des "3" etc etc et je voudrais des "Accessoires", "Hauts", "Pantalons" etc etc
Quelqu'un peut me dire comment modifier le "foreach" de la fonction "echocsv" pour insérer les noms de catégories dans le CSV ?
Merci les amis,
Michel
$query = sprintf($query);
$result = mysql_query($query, $conn) or die(mysql_error($conn));
/*
* send response headers to the browser
* following headers instruct the browser to treat the data as a csv file called export.csv
*/
header('Content-Type: text/csv charset=utf-8');
header('Content-Disposition: attachment;filename=out.csv');
/*
* output header row (if atleast one row exists)
*/
$row = mysql_fetch_assoc($result);
if ($row) {
echocsv(array_keys($row));
}
/*
* output data rows (if atleast one row exists)
*/
while ($row) {
echocsv($row);
$row = mysql_fetch_assoc($result);
}
/*
* echo the input array as csv data maintaining consistency with most CSV implementations
* - uses double-quotes as enclosure when necessary
* - uses double double-quotes to escape double-quotes
* - uses CRLF as a line separator
*/
function echocsv($fields)
{
$separator = '';
foreach ($fields as $field) {
if (preg_match('/\\r|\\n|,|"/', $field)) {
$field = '"' . str_replace('"', '""', $field) . '"';
}
echo $separator . utf8_encode($field);
$separator = ',';
}
echo "\r\n";
}
?>