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

Langage PHP Discussion :

lecture d'un fichier csv pour mise en bdd


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut lecture d'un fichier csv pour mise en bdd
    Bonsoir, je travaille depuis un moment sur une application qui lit des fichiers csv (de plusieurs formats possibles (au sens contenu, sachant que le format informatique est le csv)) et ayant pour but de mettre les infos utiles en BDD.
    J'ai adopté une approche orienté-objet, mais moyennement satisfait, je me pose des questions sur mes choix de conception.
    Il y a 2 classes, une pour le parsage du fichier (CSVParser) et l'autre pour la mise en bdd (CSVinBDD). Mon idée est que la première reçoit en entrée le fichier csv et présente en sortie les données au format prêt à être mis en BDD. La seconde reçoit en entrée ces données et ne fait que d'exécuter des requêtes SQL (update ou insert)). Ai-je donné assez d'informations pour obtenir un avis ?
    Si oui, merci de le donner.

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    salut Laurent

    Est-ce que les données parsées suivent-elles toujours la même mise en forme pour la base de données ?

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Merci de me répondre presque une heure avant que je me lève !

    En fait, la mise en forme des données est variable car elle dépend de la nature de ces données (plusieurs exemples : ça peut être une simple chaîne de caractères ou une date ; de plus, je les mets dans plusieurs tables (exemple : dans le csv, on a une colonne country et une colonne region (une region étant un continent !) donc en plus de la table licenses (si le csv contient les données d'une licence), il y a la table country avec 3 colonnes (country_key, country, region) et dans la table licenses , il n'y aura que la clé étrangère country_key)
    et d'ailleurs, certaines ne vont même pas en bdd (mise en forme inutile)

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    donc si je te suis correctement, les traitements diffèrent selon la nature de la colonne extraite du fichier .csv

    Comment je ferai :
    - une classe CSVParser totalement générique qui ne fait que lire un fichier .csv et transforme toutes les lignes en un tableau avec les colonnes nommées
    - Une classe CSVAnalyse qui analyse les données parsées et construit le sql ou la liste de sql qui va bien
    - Une classe CSVImport qui elle ne s'occupe que de la persistance (des échappements, etc) du résultat de CSVAnalyse

    et une dernière classe CSVWorkUnit qui distribue le travail et coordonne tout ça.

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Merci pour ta réponse.
    J'essaie de la comprendre. OK pour les classes CSVParser et CSVAnalyse. La classe CSVImport, elle va bien exécuter les requêtes SQL construites par CSVAnalyse ? (la persistance dont tu parles doit être assurée par PDO, non ?)

    En outre, si on adopte une architecture MVC (c'est mon cas), la classe CSVWorkUnit serait un contrôleur alors que les 3 précédentes appartiennent au répertoire "model", non ?

    Ai-je bien compris ?

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    la vache ! c'est sacrément bien rentré dis donc
    c'est tout bon

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/01/2008, 13h48
  2. Réponses: 3
    Dernier message: 03/01/2008, 12h14
  3. pb de lecture dans un fichier CSV
    Par MayOL69bg dans le forum C#
    Réponses: 3
    Dernier message: 23/05/2007, 14h21
  4. Réponses: 3
    Dernier message: 19/05/2007, 17h19
  5. Linges sautées dans "lecture" d'un fichier .csv
    Par Mymi dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 10/08/2006, 20h02

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