IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

pb fwrite et saut de colonne [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 93
    Par défaut pb fwrite et saut de colonne
    Bonjour
    Je souhaite exporter des données issues de ma SGBD vers excel mais je ne comprends pas le saut de colonne ne fonctionne pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $id_file=fopen("C:\\Users\\Public\\Etat_ATT.xls",w);
    	fwrite($id_file,"Site"."\t");
    	fwrite($id_file,"Semaine"."\t");
    	fwrite($id_file,"Agent"."\t");
    	fwrite($id_file,"Astreinte"."\t");
    	fwrite($id_file,"Total"."\t");
    	fwrite($id_file,"Dimanche"."\t");
    	fwrite($id_file,"Lundi"."\t");
    	fwrite($id_file,"Mardi"."\t");
    	fwrite($id_file,"Mercredi"."\t");
    	fwrite($id_file,"Jeudi"."\t");
    	fwrite($id_file,"Vendredi"."\t");
    	fwrite($id_file,"Samedi"."\n");
    le résultat affiché sous excel est le suivant
    Tout sur la première cellule (A1):
    "SiteSemaineAgent Astreinte TotalDimancheLundiMardiMercrediJeudi VendrediSamedi"

    Quelqu'un a t-il une explication ?

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Oui, c'est simple. Le séparateur du CSV est ; (semicolon) pour Office FR et , (colon) pour Office US.

    Utilise fptucsv pour construire ton document et ça ira comme sur des roulettes.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ($row = mysql_fetch_array($results)) {
      fputcsv($handle, $row);
    }
    Tout simplement.

  3. #3
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 93
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $list = array ('Site','Semaine','Agent','Astreinte','Total','Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi');
     
    $fp = fopen("Etat_ATT.csv",'w');
     
    foreach ($list as $fields) 
    {    
     fputcsv($fp,$fields);
    }
    mais j'ai le message ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <b>Warning</b>:  fputcsv() expects parameter 2 to be array, string given in <b>C:\Users\Public\applications\wamp\www\...</b> on line <b>1214</b><br />

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Le message d'erreur te dis que tu as passé des chaines de caractères, ce qui est logique puisque tu itère sur ta liste.

    Procède comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $list = array ('Site','Semaine','Agent','Astreinte','Total','Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi');
     
    if ($fp = fopen("Etat_ATT.csv",'w'))
      throw new RuntimeException("Cannot open file in write mode");
     
    // écriture du header
    fputcsv($fp, $list);
     
    // écriture du contenu
    while ($row = mysql_fetch_array($results)) {
      fputcsv($fp, $row);
    }
    Au fait, je vois "on line 1214" et je présume que ton fichier est beaucoup trop important. Une limite acceptable pour un script PHP traditionnel est plus ou moins 300 lignes, si tu es au dessus, c'est que ton découpage est raté et ça va nuire à la maintenance dans un futur proche. Je te conseille fortement de considérer le découpage de ton script en fonctions et de les répartir en ensembles logiques dans des fichiers séparés afin de faciliter la maintenance.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. saut de colonne dans état
    Par blamaix dans le forum IHM
    Réponses: 2
    Dernier message: 03/01/2012, 14h51
  2. Problème multicols, saut de colonne et saut de page
    Par Celadon dans le forum Mise en forme
    Réponses: 2
    Dernier message: 05/10/2010, 11h51
  3. [HTML] Saut de colonne en Html
    Par pat06 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/01/2008, 12h22
  4. Equivalent "saut de colonne dans Access"
    Par e040098k dans le forum IHM
    Réponses: 4
    Dernier message: 01/06/2007, 14h24
  5. insérer un saut de colonne
    Par Farbin dans le forum Access
    Réponses: 2
    Dernier message: 07/02/2007, 15h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo