Posez votre question Signaler

PHP export CSV [Résolu]

DAG - Dernière réponse le 12 sept. 2008 à 12:06
Bonjour,
J'ai un problème lors de l'export d'une de mes table au format CSV.
J'ai écris le bout de code suivant :
<?php
// Liste les données de la table
// -------------------------------------------
include '../bdd/connexion_bdd.php';
$resQuery = mysql_query("SELECT * FROM ayant_droit");

//header("Content-type: application/vnd.ms-excel");
// header("Content-type: application/octet-stream");
header('Content-Type: application/octet-stream; charset=iso-8859-1');
// header("content-type: application/excel; charset=iso-8859-1");

//header("Content-Type: application/csv-tab-delimited-table");
header("Content-disposition: filename=table.csv");

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++;
  }
  echo "\n";

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

Comme vous pouvez le voir j'ai essyé pas mal de Header...
Il me propose bien de télécharger le ficher table.csv, mais lorsque je veux le lire avec Excel : il me dit qu'il y a une erreur ! Je peux ignorer l'erreur, il continu à ouvrir le fichier, et il ne m'afficher rien.
Si j'essaie d'ouvrir le fichier avec un éditeur texte, je peux voir mes champs séparés par des ";" comme je souhaite le fiare.
Si j'essaie de l'ouvrir avec OpenOffice, il me demander quel type de fichier CSV j'utilise, je lui répond "avec spéarateur ";"" et là il me l'ouvre sans problème.
Je n'arrive pas à trouver l'erreur, et je ne comprend pas trop comment ça marche en plus...
Est-ce que qqu'un aurai un exemple qui marche avec MS Excel, ou aurai trouvé ou est le problème ??
Merci d'avance pour votre aide
Lire la suite 

PHP export CSV »

3 réponses
Réponse
+2
moins plus
Non, non c'est bon ça marche ! C"était pas ça l'erreur... Ca marche avec des " ; ". Je viens trouver l'erreur.
C'est une erreur normale !! Un fichier .csv ne doit pas commencer par la chaîne de caractère "ID" !! Allucinant !
La preuve : http://support.microsoft.com/kb/215591/fr

Merci bilou !

Il faut soit remplacer "ID" par 'id' ou '_ID' ou autre chose !

Voila j'en est chier pour trouver ça !! lol
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

CSV = "Comma Separated Value"

Et le comma en question c'est la virgule, pas le point-virgule. Donc sépare tes champs par des virgules et avec excel il ne devrait pas y avoir de soucis.
Ou bien tu peux prendre la tabulation comme séparateur mais en ce cas renomme l'extension de ton fichier en .xls
Ajouter un commentaire
Réponse
+0
moins plus
Oulah! Bien vu ;-)
Ajouter un commentaire
Ce document intitulé « PHP export CSV » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Windows 8 - À quoi s'attendre ?