Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML
XML Forum d'entraide sur XML avec PHP. Exemples : SimpleXML, OpenXML... Avant de poster -> FAQ XML, Cours XML et Sources XML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2012, 10h52   #1
Candidat au titre de Membre du Club
 
Homme Stevens
Inscription : janvier 2012
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Stevens
Localisation : France

Informations forums :
Inscription : janvier 2012
Messages : 21
Points : 14
Points : 14
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,
JStevens est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 11h37   #2
Membre Expert
 
Avatar de Seb33300
 
Homme Sébastien Alfaiate
Développeur Web
Inscription : janvier 2007
Messages : 1 330
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Alfaiate
Âge : 26
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : janvier 2007
Messages : 1 330
Points : 1 659
Points : 1 659
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
Seb33300 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/01/2012, 11h48   #3
Candidat au titre de Membre du Club
 
Homme Stevens
Inscription : janvier 2012
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Stevens
Localisation : France

Informations forums :
Inscription : janvier 2012
Messages : 21
Points : 14
Points : 14
Ah, et bah merci

Résolu.
JStevens est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 12h23   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 3 018
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 3 018
Points : 5 081
Points : 5 081
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
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h24.


 
 
 
 
Partenaires

Hébergement Web