IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Php et XML : Faire du tri


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien Réseau & Informatique
    Inscrit en
    Février 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Technicien Réseau & Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 66
    Points : 105
    Points
    105
    Par défaut Php et XML : Faire du tri
    Bonjour à tous,

    Voila je m'occupe d'un site d'une guilde de jeux de rôle massivement multijoueur et nous souhaitons afficher sur notre site un registre de la guilde. Pour cela un certain nombre de site mettent a dispositions des données extrait du jeu en question (Aion). Sous la forme de fichier xml, la récuperation des données est plutot simple mais il y'a une chose que je n'arrive pas a faire !

    Alors premiere chose, le flux xml n'est pas héberger sur mon site et je ne peux donc le modifier. Voici le flux en question :

    http://www.aiondatabase.com/xml/legions/1272-42.xml

    Je recupére donc bien les données des balises qui m'interesse pour les affichers un peu comme le souhaite sur le site de la guilde. Par contre lorsque je recupere la liste des membres de la guilde avec le niveau et le nom de leurs classe bah je n'arrive pas a changer l'ordre d'affichage. En gros le resultat s'affiche dans le meme ordre que le donne le fichier xml.

    Ce qui donne :

    Nyrise Aede 43
    Scope Gladiateur 32
    Nydaunvan Templier 35
    Deeper Sorcier 37
    etc..

    Et moi je voudrais pouvoir changer cela, afficher par ordre de niveau (du plus grand en haut au plus petit en bas).

    Et la j'ai toujours pas trouvé !

    Voici le code actuel de ma page ! Une petite idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    $xml = simplexml_load_file('http://fr.aiondatabase.com/xml/legions/1272-42.xml'); 
     
    $nom = $xml->name;
    $creadate = $xml['create_date'];
    $majdate = $xml['last_update'];
    $race = $xml->race;
    $server = $xml->server;
    $chars = $xml->chars;
    $testchar = $xml->chars->char;
    $count1 = count($testchar);
    $result = $xml->xpath("//char[@classname='Templar']");
    $result1 = $xml->xpath("//char[@classname='Gladiator']");
    $result2 = $xml->xpath("//char[@classname='Chanter']");
    $result3 = $xml->xpath("//char[@classname='Spiritmaster']");
    $result4 = $xml->xpath("//char[@classname='Sorcerer']");
    $result5 = $xml->xpath("//char[@classname='Cleric']");
    $result6 = $xml->xpath("//char[@classname='Ranger']");
    $result7 = $xml->xpath("//char[@classname='Assassin']");
     
     
    $nodeCount = count($result); 
    $nodeCount1 = count($result1); 
    $nodeCount2 = count($result2); 
    $nodeCount3 = count($result3); 
    $nodeCount4 = count($result4); 
    $nodeCount5 = count($result5); 
    $nodeCount6 = count($result6); 
    $nodeCount7 = count($result7); 
     
    echo"<br>$nom   (crée le $creadate)<br><br>";
     
    echo"<div><li>Serveur : $server</li><li>Race : $race</li>
    ";
     
    echo"<div style=\"width:500px;margin-left:30px;margin-right:auto;\">
    ";
    print "
    <div style=\"width:95%;height:30px;background:#a2983d;\">
    	<div style=\"float:left;width:134px;height:30px;\" >
    Membres de la Legion</div>
     
    	<div style=\"float:left;width:134px;height:30px;\" >Classe</div>
     
    	<div style=\"float:left;width:134px;height:30px;\" >Niveau</div>
    	";
    	echo"
    	</div>
    		";
     
     
    foreach ($chars->char as $char) {
     
    $classname = $char['classname']; 
    $classname = str_replace("Gladiator","Gladiateur",$classname); 
    $classname = str_replace("Templar","Templier",$classname);
    $classname = str_replace("Chanter","Aede",$classname);
    $classname = str_replace("Spiritmaster","Spiritualiste",$classname);
    $classname = str_replace("Sorcerer","Sorcier",$classname);
    $classname = str_replace("Cleric","Clerc",$classname);
    $classname = str_replace("Ranger","Rodeur",$classname);
     
    $level = $char['level']; 
     
     
       print "
    	<div style=\"float:left;width:134px;height:10px;color:#debd4b;margin-top:7px;\" >
    <img src=\"/modules/Rosteraion/images/$imglink\" style=\"vertical-align:middle;\"> $char</div>
     
    	<div style=\"float:left;width:134px;height:10px;margin-top:7px;\" >$classname</div>
     
    	<div style=\"float:left;width:134px;height:10px;color:#debd4b;margin-top:7px;\" >$level</div>
     
    	<div><img src=\"/modules/Rosteraion/images/barre.png\" style=\"width:95%;height:1px;\"></div>
    		"; //<div style=\"width:150px;\">niveau : $level</div>  <hr style=\"clear: both;width: 95%;border: 0;border-bottom: 1px white solid;height: 1px;margin-left:auto;margin-right:auto;\">
    }
     
    echo"</div>";
    echo"<div style=\"margin-left:186px;\">($majdate)</a>";
    }

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    pour faire ça, tu dois mettre toutes les données dans un tableau et ensuite tu pourras trier ce tableau comme tu veux avec la fonction http://php.net/usort par exemple

Discussions similaires

  1. [XL-2010] customUI XML Faire un nouveau groupe Tri et Filtre
    Par comme de bien entendu dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/03/2013, 18h59
  2. [DOM XML] Domdocument xml et tableau : comment faire un tri ?
    Par youtch dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 23/03/2009, 15h37
  3. [Wamp] Cherche plateforme pour développer en php, mysql, xml, xsl
    Par ibtisss dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 18/10/2005, 18h31
  4. Comment faire le tri d'un array of array ?
    Par Tchouffy dans le forum Langage
    Réponses: 1
    Dernier message: 16/06/2005, 21h55
  5. PHP dans XML ou XSL
    Par mathieu dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 31/08/2003, 22h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo