Bonjour tout le monde,

J'ai trouvé ce code pour envoyer mes données vers un fichier .csv

Le problème est que le fichier s'ouvre mais rien ne s'y écrit.

Auriez-vous une idée d'où pourrait provenir l'erreur ?

Voici le code (ce code, je l'ai modifié) :

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
<?php
require_once("csv.lib.php");
require_once("dbmysql.class.php");
 
define("DB_NAME", "pharma");
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASS", "mdp");
 
$db = new DbMySQL(DB_HOST, DB_NAME, DB_USER, DB_PASS);
$db->connect();
 
$cvs_array = $db->select("SELECT *
FROM `inscrits_en`
LEFT JOIN `etudiants` ON ( inscrits_en.MATRICULE_ET = etudiants.MATRICULE_ET )
WHERE MNEMONIC = '".$_POST['idmnemonics']."' AND TYPE_DE_COURS = '".$_POST['id_types']."' AND CATEGORIE = '".$_POST[	'id_categories']."' ORDER BY NOM_ET, PRENOM_ET");
 
 
$db2csv = new export2CSV(",","\n");
 
$csv = $db2csv->create_csv_file($cvs_array);
 
header("Content-type: application/eml");
header("Content-Disposition: attachment; filename=mysql_users.csv");
echo $csv;
 
?>
et voici le code des deux librairies :

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
<?php
 
class export2CSV{
 
    var $delimiter = ",";
    var $row_end = "\n";
 
    function exportDb2CSV($delimiter,$row_end){
        $this->delimiter = $delimiter;
        $this->row_end = $row_end;
    }
 
    function create_csv_file_header($data)
    {
        $row = "";
        if (count($data)>0){
            foreach ($data[0] as $key=>$val)
            {
                if ($row){
                    $row .= $this->delimiter . $key;
                }else{
                    $row .= $key;
                }
            }
            $row .= $this->row_end;
        }
        return $row;
    }
 
 
    function create_csv_file_row($row)
    {
        $res = "";
        foreach ($row as $key=>$val)
        {
            if ($res){
                $res .= $this->delimiter .'"'. $val.'"';
            }else{
                $res .= '"'.$val.'"';
            }
        }
        $res .= $this->row_end;
 
        return $res;
    }
 
    function create_csv_file($data)
    {
        $csv = $this->create_csv_file_header($data);
        foreach ($data as $key=>$val){
            $csv .= $this->create_csv_file_row($val);
        }
        return $csv;
    }
}
?>
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
class DbMySQL{
    var $host         = '';
    var $login        = '';
    var $pass         = '';
    var $name         = '';
    var $db_link      = null;
    var $error_report = true;
    var $sql          = '';
 
    function DbMySQL($tHost, $tName, $tLogin, $tPass)
    {
        $this->host  = $tHost;
        $this->name  = $tName;
        $this->login = $tLogin;
        $this->pass  = $tPass;
    }
 
    function connect()
    {
        $this->db_link = mysql_connect($this->host, $this->login, $this->pass);
        if ($this->db_link){
            if(mysql_select_db($this->name)){
                return true;
            }
        }
        return false;
    }
 
    function _query($tSql)
    {
        $this->sql = $tSql;
        $res = mysql_query($tSql, $this->db_link);
        if (mysql_errno($this->db_link)>0){
            $this->show_error();
        }
        return $res;
    }
 
    function select($tSql)
    {
        $result = array();
        $res = $this->_query($tSql, $this->db_link);
 
        if($res){
            while ($row = mysql_fetch_assoc($res)){
                $result[] = $row;
            }
        }else {
            return false;
        }
 
        return $result;
    }
 
    function select_row($tSql)
    {
        $result = array();
        $res = $this->_query($tSql, $this->db_link);
        if ($res){
            $tmp = mysql_fetch_assoc($res);
            if (is_array($tmp)){
                $result = $tmp;
            }
        }else{
            return false;
        }
        return $result;
    }
 
    function query($tSql)
    {
        $res = $this->_query($tSql, $this->db_link);
        return $res;
    }
 
    function insert($tSql)
    {
        $res = $this->_query($tSql, $this->db_link);
        $last_insert_id = 0;
        if (mysql_errno($this->db_link)==0){
            $last_insert_id = mysql_insert_id($this->db_link);
        }
        return $last_insert_id;
    }
 
    function close()
    {
        return mysql_close($this->db_link);
    }
 
    function get_last_error()
    {
        return mysql_error($this->db_link);
    }
 
    function error()
    {
        return array(
                    'error' => $this->get_last_error(),
                    'sql'   => $this->sql
                    );
    }
 
    function show_error()
    {
        if ($this->error_report){
            $str = $this->get_last_error();
            echo "Mysql error: [$str] in query: [{$this->sql}]\n";
        }else{
            //echo "While nothing...";
        }
    }
}
?>
Merci d'avance pour votre aide.

beegees