XML et condition php


bradeux
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 390
Inscription: 18 Mai 2005

XML et condition php

Message le Jeu Sep 06, 2007 17:32

Bonjour à tous,

J'ai un petit soucis en XML! :oops:

Pour explication:
>> j'ai un fichier products.xml dans lequel j'ai 200 produits dans une dizaine de catégories différentes (ex: vetement, chaussure...)
Comme je n'ai qu'un fichier je suis obligé de poser une condition pour avoir sur ma page "vetement" que les produits dans cette catégorie.
J'ai donc pensé à ajouter dans l'URL une cat=vetment comme ceci:
produit.php?cat=vetement...
sauf que je coince car je ne sais pas comment l'intérpreter dans le code.

Voici ce que j'ai pour l'instant mais qui marche pas...
Code: Tout sélectionner
<?php





    $fichier = "xml/products.xml";

   

   function fonctionBaliseOuvrante($parseur, $nomBalise, $tableauAttributs)

    {

        global $derniereBaliseRencontree;



        $derniereBaliseRencontree = $nomBalise;

    }

   

    function fonctionBaliseFermante($parseur, $nomBalise)

    {

        global $derniereBaliseRencontree;

        $derniereBaliseRencontree = "";

    }

   

    function fonctionTexte($parseur, $texte)

    {
        global $derniereBaliseRencontree;

      switch ($derniereBaliseRencontree) {

         case "NAME":
                        
            if($texte!=$_GET['cat']){
            exit;
            }
            else
            {
            echo "<p class='libelle'>Catégorie ".$texte."</p>";
            }
            break;
            
            
         //case "PRODUCTTYPE":

            //echo "<p class='libelle'>".$texte."</p>";

            //break;   
            

         case "PRODUCT_URL":


            echo "<span class='table'><span><a href='".$texte."'>";

            break;
            

         case "BIG":

            echo "<img src='".$texte."' border='0'/></a></span>\n";

            break;
            

         //case "PRICE":

            //echo "<p class='libelle'>".$texte." €</p>\n\n\n\n";

            //break;
            

         /*case "TEXTE_LANCEUR_COFFRET":

            $max=30; 

            if(strlen($texte)>=$max){$texte=substr($texte,0,$max); 

            $espace=strrpos($texte," "); 

            $texte=substr($texte,0,$espace)."..."; }

            echo "<p>".$texte."</p>\n";

            break;*/


         case "FIN":

            echo "</div></div>\n\n";

            break;

      }
    }

   

   

   



    $parseurXML = xml_parser_create();



    xml_set_element_handler($parseurXML, "fonctionBaliseOuvrante", "fonctionBaliseFermante");

    xml_set_character_data_handler($parseurXML, "fonctionTexte");



    $fp = fopen($fichier, "r");

    if (!$fp) die("Impossible d'ouvrir le fichier XML");



    while ( $ligneXML = fgets($fp, 1024)) {

        xml_parse($parseurXML, $ligneXML, feof($fp)) or

            die("Erreur XML");

    }

   

    xml_parser_free($parseurXML);

    fclose($fp);

?>


A votre avis?
Merci pour votre aide :D
Vincent


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 911
Inscription: 5 Aoû 2003

Re: XML et condition php

Message le Jeu Sep 06, 2007 19:11

salut,
bradeux a écrit:sauf que je coince car je ne sais pas comment l'intérpreter dans le code.

qu'est-ce qut tu veux dire par là car ton code semble tenir compte d'un $_GET['cat']


bproductiv
WRInaute accro
WRInaute accro
 
Messages: 4146
Inscription: 27 Déc 2004

Message le Ven Sep 07, 2007 7:49

ben faut récupérer ta variable et tester sa valeur.


bradeux
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 390
Inscription: 18 Mai 2005

Re: XML et condition php

Message le Ven Sep 07, 2007 8:32

Le soucis est que ca ne fonctionne pas car s'il ne trouve pas la même catégorie que celle en parametre dans l'URL alors il "exit" du coup il sort complétement de la boucle et ne poursuit par les autres enregistrements.

Moi ce qu'il me faut c'est que s''il trouve pas, il aille à l'enregistrement suivant...[/quote]


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 911
Inscription: 5 Aoû 2003

Message le Ven Sep 07, 2007 9:16

replace exit par return;


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités