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 :

Introduire données XML dans base de données [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Par défaut Introduire données XML dans base de données
    Bonsoir

    j'aimerais savoir comment à partir des des donnée provenant d'un flux XML faire un base de donnée Mysql pour mieux exploiter les données?

    Merci de me guider

  2. #2
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2008
    Messages : 71
    Par défaut
    Toute la difficulté de ta démarche consiste à transformer des données représentées sous forme d'arbre en données représentées sous forme de simple tableaux, associés les uns aux autres. Je ne connais pas d'outil permettant ce type de transformations

    Tu peux adopter la démarche suivante :

    - Déterminer les concepts représentés par ton fichier Xml
    - Les traduire en entités d'un modèle relationnel
    - mettre en place les associations nécessaires

    C'est une démarche très classique de modélisation de BDD, mais contrainte par l'architecture de arbre XML.

    Un exemple (relativement simple) :

    - le fichier XML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <xml>
       <personne>
          <nom>Personne1</nom>
          <prenom>prenom1</prenom>
          <email>email@1</email>
          <adresse>
            <rue>nom de rue</rue>
            <codepostal> 00000</codepostal>
            <ville>Nom de ville</ville>
         </adresse>
       </personne>
       <personne>
          <nom>Personne2</nom>
          <prenom>prenom2</prenom>
          <email>email@2</email>
          <adresse>
            <rue>nom de rue2</rue>
            <codepostal> 00002</codepostal>
            <ville>Nom de ville2</ville>
         </adresse>
       </personne>
    </xml>
    On identifie ici 2 concepts distincts : La personne et l'adresse.

    On peut transformer chaque concept en table :

    - Table 1 - Personne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    |-----------
    |Personne 
    |----------- 
    |Nom       
    |Prenom   
    |Email      
    |-----------
    - Table 2 - Adresse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    |-----------
    |Adresse
    |----------- 
    |rue   
    |codepostal   
    |ville
    |-----------
    On a donc bien nos 2 tables, mais pas de lien entre elles. On n'aura donc aucun moyen de savoir que l'adresse 1 appartient bien à la personne 1.

    On peut dans ce cas ajouter une clé primaire dans la table personne et l'utiliser comme clé étrangère dans la table adresse. On en profitera pour ajouter une clé primaire à l'adresse, pour l'évolutivité. Les tables au final ressembleront à :

    - Table 1 - Personne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    |-----------
    |Personne 
    |----------- 
    |IdPersonne <pk>
    |Nom       
    |Prenom   
    |Email      
    |-----------
    - Table 2 - Adresse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    |-----------
    |Adresse
    |-----------
    |IdAdresse <pk>
    |IdPersonne <fk references Personne.IdPersonne> 
    |rue   
    |codepostal   
    |ville
    |-----------
    Je ne connais pas tes compétences en termes de BDD, j'espère donc que ces explications ne te paraissent pas simplistes ou au contraire obscures. Elles sont cependant nécessaires à une résolution correcte de ton problème.

    Tu peux faire un tour par là si tu as besoin de t'initier aux concepts des BDD relationnelles.

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Par défaut
    merci pour ta reponse

    au faite j'ai des compétences en BDD car je l'utilise bcp sur mon site.

    mon problème est que je veux intégrer des données provenant par RSS d'un autre site en faire une base de donnée et l'exploiter avec des requêtes perso...

    mon souci est de créer une base à partir du fichier XML générer par le site en question.

  4. #4
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Salut,
    Moi je driais que le plus simple derais de te faire une table qui rassemble l'ensemeble des champs que tu es succeptible d'avoir (une ou des tables...).
    Ensuite tu fais pour chauqe flux une correspondance des colonnes/balises par rapport a ta base.

    Je sais pas si tu comprends mon idée?

    Guigo

  5. #5
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2008
    Messages : 71
    Par défaut
    Citation Envoyé par Interface Voir le message
    merci pour ta reponse

    au faite j'ai des compétences en BDD car je l'utilise bcp sur mon site.

    mon problème est que je veux intégrer des données provenant par RSS d'un autre site en faire une base de donnée et l'exploiter avec des requêtes perso...

    mon souci est de créer une base à partir du fichier XML générer par le site en question.
    Tu veux le faire sur un seul site connu à l'avance ? Ou sur plusieurs dynamiquement ?

    Si c'est sur plusieurs sites, je pense que c'est possible, car les flux RSS sont structurés de manière similaire pour pouvoir être lus par les lecteurs spécifiques.

    Sur un seul, tu peux appliquer ma méthode, ça devrait marcher plutôt bien... (Je pense qui guigo te propose d'ailleurs à peu près la même chose )

  6. #6
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Par défaut
    oui effectivement je veux le RSS d'un seul site et les donnée xml est pareil à chaque.

    Je devrais dc adopté votre solution c'est à dire faire une table ayant pour colonne les balises dont j'ai besoin dans le fichier XML.

    le gros problème c'est comment m'y prendre par uns script PHP? un scrip qui permettra de faire entrer ligne par ligne les élements du XML dans la base de donnée. c'est l'objet même de mon post

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

Discussions similaires

  1. Importer fichier XML dans base de données Access
    Par Yana20 dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 18/05/2015, 14h36
  2. Réponses: 1
    Dernier message: 01/12/2012, 09h47
  3. Réponses: 1
    Dernier message: 16/10/2010, 11h48
  4. [MySQL] Insertion données formulaire dans base de données
    Par westlaux dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 21/06/2007, 20h17
  5. stockage de photos dans base de données ou dans un répertoir
    Par papy_tergnier dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 08/12/2005, 16h22

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