lien XML fonction compter et mise en form

Ce topic a été résolu
laurent09

laurent09 Le 15 juin 2017 à 10:01 (Édité le 25 janvier 2019 à 17:53)

bonjour

je ne sais pas si je suis dans la bonne catégorie.
j'ai besoin d'aide.
voila je récupère des donnés sur un lien xml ( via api steam ).
<?php  
   $api_key = "XXXXXXXXCF241XXXXXXXXX";
   $steamid = "XX561XXXXXXXXXXXXX";
   $api_url = "http://api.steampowered.com/IPlayerService/GetRecentlyPlayedGames/v0001/?key=$api_key&steamid=$steamid&format=xml";
   $get    = file_get_contents($api_url);
   $xml     = new SimpleXMLElement($get);
?>
Le lien de la page xml ce présente comme ceci

<response>
   <total_count>6</total_count>
   <games>
      <message>
         <appid>578080</appid>
         <name>PLAYERUNKNOWN'S BATTLEGROUNDS</name>
         <playtime_2weeks>2652</playtime_2weeks>
         <playtime_forever>28839</playtime_forever>
         <img_icon_url>93d896e7d7a42ae35c1d77239430e1d90bc82cae</img_icon_url>
         <img_logo_url>2d2732a33511b58c69aff6b098a22687a3bb8533</img_logo_url>
      </message>
      <message>
         <appid>561600</appid>
         <name>MXGP3 - The Official Motocross Videogame</name>
         <playtime_2weeks>822</playtime_2weeks>
         <playtime_forever>803</playtime_forever>
         <img_icon_url>c2acbcfeb2c8319fef8c9835339543fd1fde880b</img_icon_url>
         <img_logo_url>180a3d7a2aad1e71872b9cda58fe72aa76a6bd43</img_logo_url>
      </message>
      <message>
         <appid>421020</appid>
         <name>DiRT 4</name>
         <playtime_2weeks>392</playtime_2weeks>
         <playtime_forever>392</playtime_forever>
         <img_icon_url>db321a3271cf6a5b2983bda3a2ffa25788e3a781</img_icon_url>
         <img_logo_url>45c6b6ebefa3283c86f2dbbd116d8f4432f38125</img_logo_url>
      </message>
      <message>
         <appid>480</appid>
         <name>Spacewar</name>
         <playtime_2weeks>191</playtime_2weeks>
         <playtime_forever>1006</playtime_forever>
         <img_icon_url/>
         <img_logo_url/>
      </message>
      <message>
         <appid>105450</appid>
         <name>Age of Empires® III: Complete Collection</name>
         <playtime_2weeks>102</playtime_2weeks>
         <playtime_forever>12467</playtime_forever>
         <img_icon_url>6fd62f99d3d245868d83af54eb60def5d1667402</img_icon_url>
         <img_logo_url>c5ad5a14c259ea16f1193c32c2753fc037b9d42b</img_logo_url>
      </message>
      <message>
         <appid>568260</appid>
         <playtime_2weeks>78</playtime_2weeks>
         <playtime_forever>78</playtime_forever>
      </message>
   </games>
</response>
Je voudrais savoir comment créer une fonction qui me compte le nombre de jeux (<message>)
et en fonction du nombre de jeux mettre en form dans ma page html le nombre de jeux.
( je ne sais pas si je me suis bien fait comprendre.)

j'arrive a récupérer les infos de chaque jeux dans le xml.
<?php 
   //jeux 1
   echo $xml->total_count;
   echo'<br>'; 
   echo $xml->games->message[0]->appid; 
   echo'<br>'; 
   echo $xml->games->message[0]->name; 
   echo'<br>';  
   echo $xml->games->message[0]->playtime_2weeks;
   echo'<br>';  
   echo $xml->games->message[0]->playtime_forever;
   echo'<br>';  
   echo $xml->games->message[0]->img_logo_url;
   echo'<br>';
   echo'<br>';
   echo'<br>';
   //jeux 2
   echo'<br>'; 
   echo $xml->games->message[1]->appid; 
   echo'<br>'; 
   echo $xml->games->message[1]->name; 
   echo'<br>';  
   echo $xml->games->message[1]->playtime_2weeks;
   echo'<br>';  
   echo $xml->games->message[1]->playtime_forever;
   echo'<br>';  
   echo $xml->games->message[1]->img_logo_url;
?>
mais je ne sais pas comment faire en sorte de compter le nombre de jeux (<message>) et mettre en form dans ma page html le nombre de jeux.

si une personne peut m'aider.

merci
ThomasT

ThomasT Le 19 juin 2017 à 21:30

Hey !

Pour compter le nombre de balises <message>
Il suffit d'utiliser :
count($xml->games->message); //retourne le nombre de valeur dans le tableau
Ensuite pour faire un bel affichage des données tu peux utiliser for()
comme ceci :
for($i = 0; $i = count($xml->games->message); $i++) //si jamais count($xml->games->message) marche pas, utilise count($xml->games->message[])
{
   echo 'Name : '.$xml->games->message[$i]->name.'<br> etc...<br>';
}

Suffit de changer le name à la fin ou si tu veux tu peux y ajouter des valeurs 😀
comme ceci :
echo 'Name : '.$xml->games->message[$i]->name.'<br> et l'image = '.$xml->games->message[$i]->img_logo_url;
laurent09

laurent09 Le 24 juin 2017 à 09:15

salut

désolé j'ai était absent un moment.

merci beaucoup je vais tester tout ça des que je peut.
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte