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 19/02/2007, 17h55   #1
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 96
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 96
Points : 32
Points : 32
Par défaut générer un fichier xml avec du php : problème de boucle

Bonjour,

je suis entrain d'essayer de faire un script pour récuperer les données d'un catalog et en faire un fichier xml, sachant que je suis débutante en xml!!
Je touche au but mais j'ai un soucis au niveau des frais de port car je dois les calculer:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
// Cout de la livraison
 	if ( $products['products_weight'] <= 2 ){
	$frais .= "11.36";
	}
	elseif ( 2 < $products['products_weight'] && $products['products_weight'] <= 7 ){
	$frais .= "16.15";
	}
elseif ( 7 < $products['products_weight'] && $products['products_weight'] <= 30 ){
	$frais .= "26.91";
	}
elseif ( $products['products_weight'] > 30 ){
	$frais .= " ";
	}
Cela fonctionne mais voila ce que j'ai en ouvrant le fichier xml generé:

Code :
1
2
3
4
5
6
 
<frais_de_port>11.36</frais_de_port>
...
<frais_de_port>11.36 11.36</frais_de_port>
...
<frais_de_port>11.36 11.36 16.91</frais_de_port>
Il écrit tout à la suite.Mais si je déplace le code "cout de la livraison" il ne fait plus le calcul.*
Voila un morceau de mon code:
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
29
30
31
32
 
 $special_query = tep_db_query("SELECT specials_new_products_price  FROM " . TABLE_SPECIALS . " WHERE products_id = " . $products['products_id']);
 if ($special_result = tep_db_fetch_array($special_query))
  $products['products_price'] = $special_result['specials_new_products_price'];
 
 $product_num++;
 
 echo '<produit num="'.$product_num.'">'."\n";
 echo '<categorie><![CDATA['.$products['categories_name']. ']]></categorie>';
 echo '<marque><![CDATA['.$products['manufacturers_name'].']]></marque>';
 echo '<reference><![CDATA['. $products['products_model'] .']]></reference>';
 echo '<refinterne><![CDATA['. $products['products_id'] .']]></refinterne>';
 echo '<titre><![CDATA['. $products['products_name'] .']]></titre>';
 echo '<description><![CDATA['. substr(strip_tags(str_replace(array('<BR>','<br>'), "</P>\n<P>",html_entity_decode($products['products_description']))),0,245) .'...]]></description>';
 echo '<etat>Neuf</etat>';
 echo '<poids>'.$products['products_weight'].'</poids>';
 
// Cout de la livraison
 	if ( $products['products_weight'] <= 2 ){
	$frais .= "11.36";
	}
	elseif ( 2 < $products['products_weight'] && $products['products_weight'] <= 7 ){
	$frais .= "16.15";
	}
elseif ( 7 < $products['products_weight'] && $products['products_weight'] <= 30 ){
	$frais .= "26.91";
	}
elseif ( $products['products_weight'] > 30 ){
	$frais .= " ";
	}
 echo '<frais_de_port><![CDATA['.$frais.']]></frais_de_port>';
 echo '<stock>'.$products['products_quantity']. '</stock>';
Que dois-je faire?
Merci de votre aide
freija est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 18h09   #2
Membre éclairé
 
Avatar de genova
 
Inscription : septembre 2004
Messages : 487
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 487
Points : 397
Points : 397
Envoyer un message via MSN à genova
Remet ta variable $frais tout simplement à '' à chaque début de boucle.
__________________
Testez le forum Fire Soft Board, un forum libre, gratuit et français.

Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.
genova est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 18h25   #3
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 96
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 96
Points : 32
Points : 32
Code :
1
2
3
4
5
6
 
 $product_num++;
  $frais =''; 
 echo '<produit num="'.$product_num.'">'."\n";
 echo '<categorie><![CDATA['.$products['categories_name']. ']]></categorie>';
 echo '<marque><![CDATA['.$products['manufacturers_name'].']]></marque>';
Cela fonctionne, c'était tout bête !!
J'avais tellement le nez dans mon code que je n'y ai pas pensé !
Merci beaucoup.
freija 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 04h28.


 
 
 
 
Partenaires

Hébergement Web