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 : Sélectionner tout - Visualiser dans une fenêtre à part
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&eacute;e &agrave; 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.