PHP - Problème de mise à jour d'un fichier xml

passy
Invité n'ayant pas de compte PHPfrance

25 sept. 2012, 19:48

Bonjour,

Je suis nouvelle en php (et ici).

J'essaye de modifier la donnée "quantite" d'un "id" particulier d'un fichier xml mais cela ne fonctionne pas.

J'envoi les données par url, je les récupère dans un fichier php.
J'ai vérifié, "$_REQUEST["id"]" et "$_REQUEST["qtite"]" me donne bien les bonnes valeurs.
Par contre, je n'entre pas dans le "if".

Pourriez-vous regarder mon code pour voir ce qui ne va pas ?

Merci d'avance
<?php
// Mise à jour de la quantite dans le fichier "produits.xml"
$xml = new DOMDocument();
$xml->Load("produits.xml");
$requete = $_REQUEST["id"];
$qtiteVendue = $_REQUEST["qtite"];

$documentList = $xml->getElementsByTagName("document");

foreach($documentList as $element) {
	if($element->getElementsByTagName("id")->item(0)->nodeValue == $requete) {
            $qtite = $element->getElementsByTagName("quantite")->item(0)->nodeValue;
            $qtiteRestante = $qtite - $qtiteVendue;
            $xml->getElementsByTagName("quantite")->item(0)->nodeValue = $qtiteRestante; 
	}
         else{
            $xml->getElementsByTagName("quantite")->item(0)->nodeValue = 45;
        }
}

$xml->save("produits.xml");

?>
fichier xml

Code : Tout sélectionner

<?xml version="1.0" encoding="utf-8"?> <catalogue> <documents> <document type="book"> <id>0</id> <descr>$ pour une Paire de Boucles d’Oreilles en Cristal Swarovski Elements avec Livraison (Valeur de 65$)</descr> <photo>boucles_oreilles.jpg</photo> <prix>15</prix> <quantite>10</quantite> <expiration>10/11/2012</expiration> </document> <document type="book"> <id>1</id> <descr>$ pour un Menu Découverte avec Champagne et Foie Gras pour deux chez Ficelle (valeur 124$)</descr> <photo>Ficelle.jpg</photo> <prix>50</prix> <quantite>100</quantite> <expiration>12/18/2012</expiration> </document> <document type="book"> <id>2</id> <descr>$ pour un Collier pour Chien à LED en Bleu ou Rose (+ Livraison). Trois Tailles Disponibles (Valeur de 69$)</descr> <photo>Collier_chien.jpg</photo> <prix>30</prix> <quantite>1000</quantite> <expiration>09/12/2012</expiration> </document> </documents> </catalogue>

ViPHP
ViPHP | 2577 Messages

26 sept. 2012, 15:42

Puisque personne ne semble inspiré, je vais donner un avis néophyte.

Tu devrais mettre quelques var_dump() pour analyser le contenu des variables que tu manipules.

J'ai un doute sur ton niveau d'affichage des erreurs car je soupçonne que certaines de tes variables ne sont pas renseignées, essayes un error_reporting(E_ALL).

En espérant est utile à défaut d'apporter une solution.