Fichier CSV

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Fichier CSV

par Hywan » 17 mars 2008, 23:38

Je vous revient avec surement d'autre problème :oops:
Mais ce sera avec joie :).
Tu as déjà réussi à résoudre ton premier problème et tu as appris des choses. Pour moi, l'objectif est atteint. Je suis impatient que tu reviennes avec de nouvelles questions ;-). Enfin non, parce que si tu reviens, c'est que t'as un problème :lol:. Mais on ne t'en voudra pas de poser une question ;-).

Si ton sujet est résolu, penses à le noter.

par jobine » 17 mars 2008, 22:32

Des nouvelles...

Voici ce que j'ai faite.
$fp = fopen('file.csv', 'w');



$select= "SELECT * FROM test";
$result = mysql_query($select) or die ('Erreur2 : '.mysql_error() );

while($row = mysql_fetch_row($result)){
    fputcsv($fp, $row, ';'); 

}

fclose($fp);

Ça me donne pas mal ce que je veux sauf pour le titre que je vais mettre moi même avant d'insérer les données. De tout façon, le titre de mes champs de tables ne sont pas toujours dans un language correcte.

Je continue mon travail , je dois insérer d'autre donnée qui viennent d'une autre table mais relier aux premières.

Je vous revient avec surement d'autre problème :oops:

par Hywan » 17 mars 2008, 16:57

Oui oui, je l'ai pas mal pris ne t'en fais pas ;-).
C'est juste que si j'échoue, je passe vraiment pour un blaireau lol. Bon, certes, il n'y a pas trop de risques aux vues de la question.
Il n'y a pas de confusion, ne t'en fais pas :).

par Patriboom » 17 mars 2008, 16:07

HyWaN saura répondre.
Ah bon ?
Bien, je tente une réponse. Le parcours verticale est plus compliqué qu'horizontal, et j'ai du mal à voir où se situe ton problème en fait.
Ben quoi, c'est une marque de confiance, une appréciation de ses talents. Non?

par Aureusms » 15 mars 2008, 23:31

HyWaN saura répondre.
Quelle responsabilité !!! :lol:

par jobine » 15 mars 2008, 14:46

Merci,

Je vais tester tout ça en fin de semaine et je vous en reparle.

par Hywan » 15 mars 2008, 13:54

HyWaN saura répondre.
Ah bon ?
Bien, je tente une réponse. Le parcours verticale est plus compliqué qu'horizontal, et j'ai du mal à voir où se situe ton problème en fait.

Voici ce que je propose, à l'aide de la fonction fputcsv :
while($row = mysql_fetch_row($query))
    fputcsv($fo, $row);
On utilise mysql_fetch_row car apparement fputcsv préfère un tableau indexé en entrée.

Ta variable $query est la sélection de ce que tu veux mettre dans ton fichier.
Pour les colonnes, il me semble que c'est un peu différent. Il doit retourner une colonne par ligne (par $row ... on se mélange les termes ^^). Chaque valeur retournée par mysql_fetch_* n'est en fait que des informations pour un seul champ ! Il faudrait donc construire le tableau indexé avant. Je ne connais plus les valeurs retournées par SHOW COLUMNS, à toi de voir, c'est assez facile.

par jobine » 15 mars 2008, 13:45

Faut bien commencer quelque part ... :D.

par Patriboom » 15 mars 2008, 05:30

Je soupçonne le split d'avoir quelque chose à faire là-dedans.
Je vois que tu reproduis fidèlement le modèle de la page http://ca3.php.net/manual/fr/function.fputcsv.php, mais je me demande quel séparateur est mis par http://ca3.php.net/manual/fr/function.m ... ch-row.php

Dans la page de fputcsv, tu vois la table remplie artificiellement et ses éléments séparés par des virgules. Quel est le séparateur généré par mysql_fetch_row ?
HyWaN saura répondre.

par jobine » 15 mars 2008, 02:29

Merci pour ta réponse,

Je vais essayer d'être plus claire.

Je veux un fichier qui donnerais quelque chose comme ça dans excel.


Nom Prénom code divers ...
joe bine ede3 truc
Noel père hohoho h3h3h3
...

En ce moment j'ai
joe
bine
ede3
truc


Est-ce que c'est plus claire???

Merci

par Hywan » 14 mars 2008, 23:56

Bonsoir :).

Pour afficher le nom des colonnes, il faut utiliser une requête SQL de ce genre :

Code : Tout sélectionner

SHOW COLUMNS FROM table
De cette façon, tu auras le nom de tous tes champs, soit tes colonnes.

Pour ton affichage en colonne plutôt qu'en ligne, j'avoue ne pas bien comprendre. Si le but est d'obtenir un tableau, les têtes de colonnes seraient le nom des champs, puis on aurait en dessous les valeurs associées aux colonnes, soit un affichage normal. J'entends par affichage normal : pour chaque entrée dans ta base de données, tu l'affiches de façon naturelle, i.e. comme un affichage pour un livre d'or, des messages, des commentaires etc., ligne par ligne.
Si tu veux construire ton CSV horizontalement, ça ne sera pas lisible de toute façon.

Donc ta question m'intrigue ;-).

Fichier CSV

par jobine » 14 mars 2008, 22:31

Bonjour,

Voici mon "projet":

En fonction de donnée contenur dans plusieurs table de ma bdd. Je veux créer un fichier CSV que l'utilisateur pourra télécharger pour son usage personnel.

Mon problème se trouve dans la création du fichier. Après quelques recherche j'ai trouver un début de code mais qui donne une colonne au lieu d'une ligne (Dans le fichier CSV ouvert avec excel).

De plus, j'ai pas les titres des colonnes (qui devraient correspondre aux champs dans mes tables).

$select= "SELECT * FROM xxx";
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);

$fp = fopen('file.csv', 'w');

foreach ($row as $line) {
    fputcsv($fp, split(',', $line));
}

fclose($fp);
Qu'est-ce que je doit faire pour afficher le titre des colonnes et que les donnée soit en ligne plutôt qu'en colonne.

Je sais qu'il y a bien d'autre truc a faire mais je veux comprendre le début pour m'attaquer au reste après.

MErci de votre aide