Bonjour,
Je souhaite faire une exportation excel des utilisateurs en fonction d'une date de debut et une date de fin.
Je récupère bien toutes mes données, sauf que elles sont sur une seule ligne, séparées par des points virgules (que j'ai pris de soin de changer dans la fonction fputscv)
Les données sont affichées tel ceci :


Nom : Capture.PNG
Affichages : 458
Taille : 7,6 Ko


Et voici le code (Qui n'est pas le miens) :

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
$connect =  new pdo("mysql:host=localhost;dbname=blbl;port=3306;charset=utf8" , 'blbl' , 'blbl');
 
$start_date_error = '';
$end_date_error = '';
 
if(isset($_POST["export"]))
{
 if(empty($_POST["start_date"]))
 {
  $start_date_error = '<label class="text-danger">Start Date is required</label>';
 }
 else if(empty($_POST["end_date"]))
 {
  $end_date_error = '<label class="text-danger">End Date is required</label>';
 }
 else
 {
  $file_name = 'Order Data.csv';
  header("Content-Description: File Transfer");
  header("Content-Disposition: attachment; filename=$file_name");
  header("Content-Type: application/csv;");
 
  $file = fopen('php://output', 'w');
 
  $header = array("entry_id", "genre_personne", "nom_personne", "prenom_personne", "age_personne" , "email_personne" , "adresse_personne" , "codep_personne" , "ville_personne" , "pays_personne" , "centre_emetteur" , "centre_emetteur_region" , "licence" , "vie_associative" , "type"  , "date_current");
 
  fputcsv($file, $header, ";");
 
  $query = "
  SELECT entry_id,genre_personne,nom_personne,prenom_personne,age_personne,telephone_personne,email_personne,adresse_personne,codep_personne,ville_personne,pays_personne,centre_emetteur,centre_emetteur_region,licence,vie_associative,type,date_current FROM personnes
  WHERE date_current >= '".$_POST["start_date"]."' 
  AND date_current <= '".$_POST["end_date"]."' 
  ORDER BY date_current DESC
  ";
  $statement = $connect->prepare($query);
  $statement->execute();
  $result = $statement->fetchAll();
  foreach($result as $row)
  {
   $data = array();
   $data[] = $row["entry_id"];
   $data[] = $row["genre_personne"];
   $data[] = $row["nom_personne"];
   $data[] = $row["prenom_personne"];
   $data[] = $row["age_personne"];
   $data[] = $row["email_personne"];
   $data[] = $row["adresse_personne"];
   $data[] = $row["codep_personne"];
   $data[] = $row["ville_personne"];
   $data[] = $row["pays_personne"];
   $data[] = $row["centre_emetteur"];
   $data[] = $row["centre_emetteur_region"];
   $data[] = $row["licence"];
   $data[] = $row["vie_associative"];
   $data[] = $row["type"];
   $data[] = $row["date_current"];
 
   fputcsv($file, $data, ";");
  }
  fclose($file);
  exit;
 }
}
 
$query = "
SELECT entry_id,genre_personne,nom_personne,prenom_personne,age_personne,telephone_personne,email_personne,adresse_personne,codep_personne,ville_personne,pays_personne,centre_emetteur,centre_emetteur_region,licence,vie_associative,type,date_current FROM personnes
ORDER BY date_current DESC;
";
 
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
Je vous remercie de votre aide !

EDIT : Je sais qu'il y a la solution de convertir, mais j'aimerais que ça le fasse automatiquement pour mes clients