PHP export CSV

Résolu/Fermé
DAG - 12 sept. 2008 à 11:12
 gUY. - 23 mai 2012 à 16:14
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
A voir également:

3 réponses

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 : https://support.microsoft.com/fr-fr/help/215591

Merci bilou !

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

Voila j'en est chier pour trouver ça !! lol
3
Tu viens de me sauvez la mise, là... ça fait 2 heures que je cherche le pourquoi du comment.

Merci !
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
12 sept. 2008 à 11:58
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
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
12 sept. 2008 à 12:06
Oulah! Bien vu ;-)
0