p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    janvier 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2012
    Messages : 25
    Points : 18
    Points
    18

    Par défaut 1=1 mais pas pour php?

    Salut,

    J'ai un xml contenant 2 tableaux (offres et categories) eux même dans un tableau Boutique :

    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <Boutique>
    	<Offres type="array">
    		<offre>
    			<id>1</id>
    			<titre>titre 1</titre>
    			<contenu>le 1er contenu</contenu>
    			<categorie_id>1</categorie_id>
    			<disponible>1</disponible>
    			<prix>le prix</prix>
    		</offre>
    		<offre>
    			<id>2</id>
    			<titre>titre 2 </titre>
    			<contenu>mon second contenu</contenu>
    			<categorie_id>1</categorie_id>
    			<disponible>1</disponible>
    			<prix>prix</prix>
    		</offre>
    	</Offres>
    	<Categories type="array">
    		<categorie>
    			<id>1</id>
    			<titre>titre categorie</titre>		
    		</categorie>
    	</Categories>
    </Boutique>
    Je parse le xml avec l'objet SimpleXMLElement() que je stocke dans une variable $Content.
    Puis je parcours les 2 tableaux avec 2 foreach :

    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
     
    <div class="primary">
        <div id="carroussel">
            <?php foreach($Content->Categories->categorie AS $categorie) : ?>
            <div class="categorie" id="<?php echo $categorie->id ; ?>">
            <h2><?php echo $categorie->titre; ?></h2>
             <?php foreach($Content->Offres->offre AS $offre) : ?>
                 <?php if($categorie->id == $offre->categorie_id && $offre->disponible == 1) : ?>
                    <div class="carroussel" id="<?php echo $offre->id; ?>">
                        <h2><?php echo $offre->titre ; ?></h2>
                        <div class="texte"><?php echo $offre->contenu; ?></div>
                        <div class="prix"><?php echo $offre->prix; ?></div>
                    </div>
                <?php endif; ?>
            <?php  endforeach; ?>
            </div>
            <?php  endforeach; ?>
        </div>
    </div>
    Le problème, c'est que pour lui $offre->categorie_id (qui vaut 1) n'est pas égal à $categorie->id (qui lui aussi vaut 1). Et donc rien ne s'affiche.
    J'ai fait des test en enlevant la condition sur l'id de la catégorie, et tout s'affiche normalement.

    Je n'utilise jamais les xml, ptete qu'il y a une synthaxe spécial à respecter?


    Stevens,

  2. #2
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    janvier 2007
    Messages
    1 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : janvier 2007
    Messages : 1 461
    Points : 2 270
    Points
    2 270

    Par défaut

    essaye de les forcer en int :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(intval($categorie->id) == intval($offre->categorie_id) && intval($offre->disponible) == 1)
    Zend Certified Engineer PHP 5.3

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    janvier 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2012
    Messages : 25
    Points : 18
    Points
    18

    Par défaut

    Ah, et bah merci

    Résolu.

  4. #4
    Expert Confirmé Sénior
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    février 2010
    Messages
    3 930
    Détails du profil
    Informations personnelles :
    Âge : 27
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : février 2010
    Messages : 3 930
    Points : 8 158
    Points
    8 158

    Par défaut

    Tu peux caster également (c'est plus lisible je trouve).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $a = "1";
    var_dump( (int)$a );
    Fonctionne avec int, integer, bool, boolean, real, float, double, array, unset et object
    Voir http://php.net/manual/en/language.ty...e-juggling.php

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

Discussions similaires

  1. getElementById marche pour ff mais pas pour IE7
    Par Stessy dans le forum JavaScript
    Réponses: 7
    Dernier message: 29/02/2008, 16h32
  2. requête qui marche avec phpmyadmin mais pas en php
    Par KoosMos dans le forum PHP & MySQL
    Réponses: 5
    Dernier message: 11/02/2008, 11h00
  3. TV disponible free mais pas pour neuf ?
    Par kiki1844 dans le forum Dépannage et Assistance
    Réponses: 3
    Dernier message: 16/01/2008, 11h28
  4. Réponses: 9
    Dernier message: 13/07/2007, 11h03
  5. Question SQL (facile) mais pas pour moi
    Par fabianrs dans le forum Langage SQL
    Réponses: 15
    Dernier message: 30/03/2006, 03h44

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