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 :

Syntaxe dans SimpleXML [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Points : 107
    Points
    107
    Par défaut Syntaxe dans SimpleXML
    Bonjour,

    Voici le script suivant :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    header('Content-type: text/html; charset=iso-8859-1');
     
    // créer une session
     
    session_start();
     
    $categorie = $_POST['categorie'];
     
    $url_categories = $_SERVER['DOCUMENT_ROOT'].'/xml/categories_'.$_SESSION['web_lang'].'.xml';
     
    // charger le fichier des catégories et types
     
    $xml_categories = simplexml_load_file($url_categories);
     
    // lister les types
     
    $table_types = array();
    $table_types['id'] =  array();
    $table_types['intitule'] =  array();
     
    foreach($xml_categories->categorie[$categorie]->type as $item)
    {
    array_push($table_types['id'], utf8_decode($item['id']));
    array_push($table_types['intitule'], mb_strtolower(utf8_decode($item)));
    }
     
    array_multisort($table_types['intitule']);
     
    foreach($table_types['id'] as $id)
    {
        echo '                            <option value="'.$id.'">'.$table_types['intitule'][$id].'</option>'."\n";
    } 
     
    exit;
    mon problème est sur la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    foreach($xml_categories->categorie[$categorie]->type as $item)
    problème d'argument qu'il me dit...

    quand je fais par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    foreach($xml_categories->categorie[1]->type as $item)
    ça fonctionne.

    comment puis-je faire. svp.
    merci !

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour
    Es-tu sûr d'avoir quelque chose dans $categorie ? Fait un print_r avant de l'utiliser pour vérifier...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre régulier Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Points : 107
    Points
    107
    Par défaut
    salut,
    yep, c'est la première chose que j'ai faite...
    à mon avis c'est un problème de synthaxe, mais je ne vois pas...

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Peut-on avoir le message d'erreur exact et l'affichage de $categorie dans ce cas ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre régulier Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Points : 107
    Points
    107
    Par défaut
    bien sûr...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    1<br />
    <b>Warning</b>:  Invalid argument supplied for foreach() in <b>/home/www/.../php/script_recuperer_types_categorie.php</b> on line <b>24</b><br />
    le "1" correspond au print_r, le reste c'est le message d'erreur...
    ( à noter que j'ai supprimé l'adresse par "..." entre www et php)

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    hum...
    si tu fais un print_r de $xml_categories->categorie[$categorie]->type ça donne quoi ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre régulier Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Points : 107
    Points
    107
    Par défaut
    rien.

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ah! donc forcément le foreach n'a pas de données à se mettre sous la dent...

    Quelle tête a ton xml d'origine ? type est un attribut de la balise categorie ou une sous-balise ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  9. #9
    Membre régulier Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Points : 107
    Points
    107
    Par défaut
    une sous-balise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <categories>
        <categorie id="0">
            <intitule>mode femme</intitule>
            <type id="0">pantalon</type>
            <type id="1">chemise</type>
        </categorie>
    </categories>

  10. #10
    Expert éminent sénior

    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
    Points : 17 778
    Points
    17 778
    Par défaut
    Normalement il faut fournir un entier donc "caster" votre donnée car pour SimpleXML un indice entier fait référence à la position de l'enfant alors qu'une clé de type chaîne fait référence à un attribut.

    Et comme votre donnée vient de POST, c'est forcément une chaîne.

    Donc, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach($xml_categories->categorie[intval($categorie)]->type as $item)

  11. #11
    Membre régulier Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Points : 107
    Points
    107
    Par défaut
    oh ! super !
    ça fonction à merveille !
    merci à tous !

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

Discussions similaires

  1. syntaxe dans requete
    Par decour dans le forum Access
    Réponses: 2
    Dernier message: 30/09/2005, 16h55
  2. Syntaxe dans un script shell
    Par cubepiege dans le forum Linux
    Réponses: 5
    Dernier message: 27/09/2005, 16h21
  3. Erreur de syntaxe dans une requete
    Par linou dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/08/2005, 12h44
  4. [JSP]Erreur de syntaxe dans un tag <option select
    Par logica dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 03/05/2005, 14h33
  5. erreur syntaxe dans requete
    Par dom - ien moutiers dans le forum Requêtes
    Réponses: 5
    Dernier message: 19/04/2004, 11h54

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