de mysql à csv via php

Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2009, 15:10

Bonjour à tous,

J'essaye de créer un fichier csv ou xls à partir d'une requete mysql et un traiment php. Pour csv comme pour xls, je reçois bien le fichier et les données.

Sous vista, chaque donnée du fichier est bien placée dans une cellule et est manipulable directement.

Le problème est sous xp: je reçois bien les données mais chaque enregistrement se trouve dans une unique cellule et ressemble à ceci:
donnée1;donnée2;donnée3;donnée;

Donc impossible de manipuler les données.
Comment résoudre ce pb? Quel header utiliser pour obtenir des données manipulables sous excel ou autre tableur, indépendamment de l'os et de la version?

Voici mon test export csv:
$filename = "test.csv";
header("Content-type: text/x-csv");
header("Content-disposition: attachment; filename=\"$filename\"");
Et le test excel
$filename = "test.xls";
header("Content-type: application/vnd.ms-excel"); 
header("Content-disposition: attachment; filename=\"$filename\"");
Merci pour vos réponses.

Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2009, 15:15

je rajoute le code qui crée le fichier à partir de la requete
if (mysql_num_rows($resQuery) != 0) {
  // titre des colonnes
  $fields = mysql_num_fields($resQuery);
  $i = 0;
  while ($i < $fields) {
    echo mysql_field_name($resQuery, $i).";";
    $i++;
  }
  print "\n";

  // données de la table
  while ($arrSelect = mysql_fetch_array($resQuery, MYSQL_ASSOC)) {
   foreach($arrSelect as $elem) {
    echo "$elem;";
   }
   echo "\n";
  }
}

Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2009, 15:19

j'ai aussi tenté le header suivant qui ne marche pas:
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=$filename");
header("Pragma: no-cache");
header("Expires: 0");
Je me demande si le pb ne vient pas du code qui crée la table de données? j'ai un doute sur la manière dont j'ajoute des ";" pour séparer les champs.

Invité
Invité n'ayant pas de compte PHPfrance

17 janv. 2009, 08:42

cette absence de commentaires veut il dire que mon code est correct?
un petit "oui" ou "non" me réconforterait...et m'aiderait beaucoup à avancer, merci.