Exporter le résultat d'une requête en CSV
Bonjour,
Voilà, j'ai récupéré un script afin d'exporter le résultat d'une requête MySQL sous forme de fichier CSV, cependant, il ne fonctionne pas et je ne comprend pas pourquoi.
Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| <?php
include("header.php");
// Connexion MySQL
require_once('connection.php');
// la variable qui va contenir les données CSV
$outputCsv = '';
// Nom du fichier final
$fileName = "parrainage_";
$fileName .= date('Y-m-d_H:i:s');
$fileName .= ".csv";
// on crée la requête SQL
$sql = 'SELECT * FROM `ps_customer`';
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>' . $sql . '<br>' . mysql_error());
if (mysql_num_rows($sql) > 0) {
$i = 0;
while ($Row = mysql_fetch_assoc($sql)) {
$i++;
// Si c'est la 1ère boucle, on affiche le nom des champs pour avoir un titre pour chaque colonne
if ($i == 1) {
foreach ($Row as $clef => $valeur)
$outputCsv .= trim($clef) . ';';
$outputCsv = rtrim($outputCsv, ';');
$outputCsv .= "\n";
}
// On parcours $Row et on ajout chaque valeur à cette ligne
foreach ($Row as $clef => $valeur)
$outputCsv .= trim($valeur) . ';';
// Suppression du ; qui traine à la fin
$outputCsv = rtrim($outputCsv, ';');
// Saut de ligne
$outputCsv .= "\n";
}
} else
exit('Aucune donnée à enregistrer.');
// Entêtes (headers) PHP qui vont bien pour la création d'un fichier Excel CSV
header("Content-disposition: attachment; filename=" . $fileName);
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: application/vnd.ms-excel\n");
header("Pragma: no-cache");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
header("Expires: 0");
echo $outputCsv;
exit();
?> |
Il m'affiche toujours "Aucune donnée à enregistrer".
Si quelqu'un peut m'aider, je lui en serais reconnaissant.