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 :

intervenir boucle export xml incrémenter nom


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut intervenir boucle export xml incrémenter nom
    Bonjour,

    J'ai une problématique que je n'arrive pas à résoudre. Pouvez-vous m'aider svp ? Ca semble tout bête de prime abord...

    Pour formater un export au format xml je cherche à incrémenter le nom de ma colonne.

    Mon xml se construit à partir du foreach suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach ( $Map  as $Attribute ) 
    {
    $Name = $Attribute->ContentClassAttributeIdentifier;//récupère le nom de la colonne en base
    $Value = $Attribute->content();//récupère la valeur associée
    xmlwriter_write_attribute( $memory, $Name, $Value );//enregistre dans le xml
    }
    En soit ça fonctionne mais je voudrais que si le script rencontre un intitulé Name déjà existant (ce qui est le cas quand il y a 2 enregistrements)

    exemples :

    nom="dylan" prenom="bob"... nom="mitchel" prenom="eddy"...

    nom x 2, prenom x 2

    qu'il me mette

    nom="dylan" prenom="bob"... nom2="mitchel" prenom2="eddy"...

    de façon à ce que je puisse "colonner" l'import xml.

    Vous me suivez ?

    Par avance merci de votre aide.

    hpl76

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Par défaut
    Bonjour,

    Deux solutions :
    - Soit tu définis un compteur avant le début de ton foreach que tu incrémentes dans chaque tour de boucle :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $cpt = 1;
    foreach ( $Map  as $Attribute ) 
    {
        $Name = $Attribute->ContentClassAttributeIdentifier;//récupère le nom de la colonne en base
        $Value = $Attribute->content();//récupère la valeur associée
        xmlwriter_write_attribute( $memory, $Name.$cpt++, $Value );//enregistre dans le xml. Concatène CPT puis l'incrémente
    }

    - Soit tu passes par un for(cpt = ....) :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $nbMap = count($Map);
    for ($cpt = 0; $cpt <  $nbMap; $cpt++) 
    {
        $Name = $Attribute->ContentClassAttributeIdentifier;//récupère le nom de la colonne en base
        $Value = $Attribute->content();//récupère la valeur associée
        xmlwriter_write_attribute( $memory, $Name.($cpt+1), $Value );//enregistre dans le xml. On met $cpt+1 pour commencer le nom à 1, $cpt commençant à 0
    }

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Merci Meyfarth de te pencher si rapidement sur mon souci.

    C'est presque bon seulement mon script remplit mon xml de la façon suivante :

    enregistrement A - jointures nom prenom nom prenom nom prenom
    enregistrement B - jointures nom prenom nom prenom nom prenom
    enregistrement C - jointures nom prenom nom prenom nom prenom

    ta boucle me corrige ça comme cela :

    enregistrement A - jointures nom1 prenom2 nom1 prenom2 nom1 prenom2
    enregistrement B - jointures nom1 prenom2 nom1 prenom2 nom1 prenom2
    enregistrement C - jointures nom1 prenom2 nom1 prenom2 nom1 prenom2

    et pour le coup je "voudrais" ceci :

    enregistrement A - jointures nom1 prenom1 nom2 prenom2 nom3 prenom3
    enregistrement B - jointures nom1 prenom1 nom2 prenom2 nom3 prenom3
    enregistrement C - jointures nom1 prenom1 nom2 prenom2 nom3 prenom3

    Tu vois comment faire ? Je continue de chercher...

    hpl76

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Si je puis me permettre, à moins que tu aies une contrainte forte il faudrait peut-être revoir la structure de ton XML.

    Plutôt que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <personne nom1="Dylan"  nom2="Mitchell"/>
    Faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <groupe>
        <personne nom="Dylan"/>
        <personne nom="Mitchell"/>
    </groupe>
    Autrement le XML va être compliqué à parser.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Bonjour,

    Je veux bien le souci c'est qu'après lors de l'import xml il me dit que le champ nom existe déjà car je déroule à la fois verticalement et horizontalement par une jointure.

    Exemple :

    tables films

    id nom
    1 Le vieux fusil
    2 Piège de cristal

    et les acteurs associés avec de nouveau id nom...sur la même ligne

    id nom prenom nom prenom nom
    1 Le vieux fusil Philippe Noiret Romy Schneider
    2 Piège de cristal Bruce Willis Alan Rickman

    L'import coince d'où mon idée de colonner les noms. Tu/vous me suivez ?

    hpl76

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    L'import coince
    Qui fait l'import ? Quelles sont les contraintes ?

Discussions similaires

  1. [XSLT][OpenOffice] Problème filtre d'export XML
    Par Maximil ian dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 04/06/2011, 20h10
  2. [Mapping/Import/Export] XML et SGBDR ?
    Par Eric Lavanda dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 18/01/2006, 11h31
  3. Export XML
    Par Nip dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/11/2005, 13h49
  4. Export DLL et noms des points d'entrée
    Par Dozer dans le forum MFC
    Réponses: 5
    Dernier message: 03/06/2005, 09h49
  5. pb encodage lors export XML
    Par gemogof dans le forum ASP
    Réponses: 6
    Dernier message: 26/03/2005, 14h13

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