Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Futur Membre du Club
    Homme Profil pro Stevens
    Inscrit en
    janvier 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Nom : Homme Stevens
    Localisation : France

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

    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 :
    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 :
    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 Sébastien Alfaiate
    Développeur Web
    Inscrit en
    janvier 2007
    Messages
    1 459
    Détails du profil
    Informations personnelles :
    Nom : Homme Sébastien Alfaiate
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 1 459
    Points : 2 160
    Points
    2 160

    Par défaut

    essaye de les forcer en int :

    Code :
    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 Stevens
    Inscrit en
    janvier 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Nom : Homme Stevens
    Localisation : France

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

    Par défaut

    Ah, et bah merci

    Résolu.

  4. #4
    Expert Confirmé Sénior
    Avatar de Benjamin Delespierre
    Profil pro Benjamin Delespierre
    Développeur Web
    Inscrit en
    février 2010
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Nom : Benjamin Delespierre
    Âge : 26
    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 932
    Points : 7 812
    Points
    7 812

    Par défaut

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

    Code :
    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •