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

Bibliothèques et frameworks PHP Discussion :

[SimpleXML] Incohérence foreach et xml


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut [SimpleXML] Incohérence foreach et xml
    Bonjour.

    Je possède un tableau comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [nom] => import/26-03-08-13-08-41.xml [importer] => 0,1,2,3,4,5,6,7,8,9 [NOT_importer] => [COMMIT] => YES )
    Je récupère donc les id à importer en faisant un explode.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_importer = explode(",", $_POST['importer']);
    Quand je fais un foreach pour les enumérer tout se passe bien je récupère bien les id
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    foreach($id_importer as $val_id_importer) {
    echo $val_id_importer;
    Dans cette même boucle je veux lire l'enregistrement dont l'id a été recupéré en faisant comme ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $xml->request->record[$val_id_importer]->ID_BUDGETOR;
    Cela ne renvoie rien!!!!!!!!!!!
    Si avant le foreach j'initialise une variable $i à 0 et qu'ensuite dans ma boucle je fais ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $xml->request->record[$i]->ID_BUDGETOR;
    les résultats s'affichent alors.

    Pourtant dans les deux cas $i et $val_id_importer valent la même valeur et pourquoi ça marche qu'avec le $i?

    MErci à vous.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Sans doute un problème de type : ici $val_id_importer est une chaîne et non un nombre et SimpleXML fait la distinction : un nombre fait référence à la position du noeud alors qu'une chaîne fait référence à un attribut. Il faudrait tenter de le caster (fonction intval ou via (int)) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $xml->request->record[intval($val_id_importer)]->ID_BUDGETOR;

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    Tu gères.

    Merci bien.

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

Discussions similaires

  1. [SimpleXML] Parser un flux xml avec SimpleXMLElement
    Par DeezerD dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 22/11/2006, 18h07
  2. [SimpleXML] Récupération des données XML
    Par squalito dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 30/05/2006, 14h22
  3. [SimpleXML] Lecteur de flux XML léger
    Par killprog dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 15/03/2006, 11h27
  4. [SimpleXML] Comment passer de XML à MySQL et vice-versa avec PHP ?
    Par Ben42 dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 05/12/2005, 21h42

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