Guest User

Untitled

a guest
Aug 19th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.17 KB | None | 0 0
  1. <?php
  2. //error displaying
  3. ini_set('display_errors', 1);
  4. ini_set('log_errors', 1);
  5. ini_set('error_log', dirname(__file__) . '/log_error_php.txt');
  6. error_reporting(E_ALL);
  7.  
  8. //connect bdd
  9. $user="xxx";
  10. $pw="xxx";
  11. $db="xxx";
  12. $connect = mysqli_connect('localhost', $user, $pw, $db)
  13.     or die('db connect error');
  14.  
  15. //gestionnaire de requête
  16. require_once 'Unirest.php';
  17.  
  18. //KEY API
  19. $key="xxxxxxxxxxx";
  20.  
  21. //liste des joueurs
  22. $pseudolist=array('mazuru','wiliwilliam','vanlaulow','galora','skara45','mhore77','mrkrar','stupepic','gonadesoyeuse',
  23. 'hebulus','mrpinpin','chokorato','demonmaterya','enelya83','guraz','hystenewbie',
  24. 'ledjau','lightspears','monchery','pouip','ptiskity','quebrutal','quickkill','sirnitns','smurf38','teusch','wiliwilliam2','yllegal','zarkaouette','ghorrie','ultimatebyte');
  25.  
  26. //déclaration de la chaîne de pseudp
  27. $pseudos="";
  28.  
  29. //incrémentation des pseudos pour la requête groupée des ID
  30. foreach($pseudolist as $name){
  31.     $pseudos.=strtolower($name).',';
  32. }
  33.  
  34. //on enlève la virgule de trop à la fin
  35. $pseudos=substr($pseudos,0,-1);
  36.  
  37. //récupère l'ID des pseudo
  38. $q = Unirest\Request::get("https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/$pseudos?api_key=$key");      
  39.                
  40. //boucle de chaque PLAYERS
  41. foreach ($pseudolist as $name){
  42.     //calcul du temps de traitement
  43.     $timestart=microtime(true);
  44.    
  45.     //réupère les stats des 10 dernières parties
  46.     $q2 = Unirest\Request::get('https://euw.api.pvp.net/api/lol/euw/v1.3/game/by-summoner/'.$q->body->$name->id.'/recent?api_key='.$key);
  47.        
  48.         //déclaration variables PLAYERS
  49.             //indice du nombre de parties
  50.                 $in=0;
  51.                 $ia=0;
  52.             //assist total
  53.                 $assistsa=0;
  54.                 $assistsn=0;
  55.             //nombre de morts
  56.                 $numDeathsa=0;
  57.                 $numDeathsn=0;
  58.             //nombre de kills
  59.                 $championsKilleda=0;
  60.                 $championsKilledn=0;
  61.             //nombre de gold gagné
  62.                 $goldEarneda=0;
  63.                 $goldEarnedn=0;
  64.            
  65.            
  66.         //boucle de chaque GAME
  67.         foreach($q2->body->games as $game){
  68.            
  69.             //subTypes de game ARAM
  70.             if($game->subType=="ARAM_UNRANKED_5x5"){
  71.                 $ia++;
  72.                 if(isset($game->stats->assists)){$assistsa += $game->stats->assists;}
  73.                 if(isset($game->stats->numDeaths)){$numDeathsa += $game->stats->numDeaths;}
  74.                 if(isset($game->stats->championsKilled)){$championsKilleda += $game->stats->championsKilled;}
  75.                 if(isset($game->stats->goldEarned)){$goldEarneda += $game->stats->goldEarned;}
  76.             }
  77.             //subTypes de game NORMAL
  78.             elseif($game->subType=="RANKED_SOLO_5x5" or $game->subType=="NORMAL"){
  79.                 $in++;
  80.                 if(isset($game->stats->assists)){$assistsn += $game->stats->assists;}
  81.                 if(isset($game->stats->numDeaths)){$numDeathsn += $game->stats->numDeaths;}
  82.                 if(isset($game->stats->championsKilled)){$championsKilledn += $game->stats->championsKilled;}
  83.                 if(isset($game->stats->goldEarned)){$goldEarnedn += $game->stats->goldEarned;}
  84.             }else{}
  85.        
  86.  
  87.         /*[FLO => C'EST ICI QUE JE RECUPERE LA VARIABLE game->championId qui est l'ID du champion joué.
  88.         et du coup, je voudrais stocker les infos de CETTE partie et les additionner dans la ligne déjà existante de ce champion, dans
  89.         une autre table de ma BDD. Le problème qu'il semble y avoir avec le LOAD DATA INFILE que tu me suggères, c'est qu'en gros
  90.         ICI je vais écrire une nouvelle ligne dans le fichier avec comme structure Nomdechampion,kill,death exemple sur 3 parties:
  91.         "Morgana",10,3
  92.         "Teemo",5,7
  93.         "caitlyn",12,2
  94.         mais le problème c'est que si j'ai denouveau une nouvelle game avec "caitlyn",15,5 il semblerait qu'il n'y ait que 3
  95.         paramètres
  96.         INFILE, qui renvoie une erreur lors d'une double key unique
  97.         REPLACE va simplement remplacer les valeurs de la ligne existante au lieu de les additionner
  98.         IGNORE va simplement ignorer les doublons
  99.         LOCAL = INGORE
  100.  
  101.         j'espère que mon explication ci - dessus précise mon soucis de stockage des champions
  102.         */
  103.  
  104.         //fin de la boucle de chaque partie
  105.         }
  106.    
  107.         //sauvegarde/update des infos players dans la Base des joueurs
  108.         mysqli_query($connect,'
  109.         INSERT INTO lolkoreus (
  110.                 summonerId,
  111.                 summonerName,
  112.                 profileIconId,
  113.                 indicea,indicen,
  114.                 assistsa,assistsn,
  115.                 numDeathsa,numDeathsn,
  116.                 championsKilleda,championsKilledn,
  117.                 goldEarneda,goldEarnedn,
  118.                 )
  119.         VALUES (
  120.                 '.$q->body->$name->id.',
  121.                 "'.$q->body->$name->name.'",
  122.                 '.$q->body->$name->profileIconId.',
  123.                 '.$ia.','.$in.',
  124.                 '.$assistsa.','.$assistsn.',
  125.                 '.$numDeathsa.','.$numDeathsn.',
  126.                 '.$championsKilleda.','.$championsKilledn.',
  127.                 '.$goldEarneda.','.$goldEarnedn.'
  128.             )
  129.         ON DUPLICATE KEY UPDATE
  130.         summonerName="'.$q->body->$name->name.'",
  131.         profileIconId='.$q->body->$name->profileIconId.',
  132.         indicea='.$ia.',indicen='.$in.',
  133.         assistsa='.$assistsa.',assistsn='.$assistsn.',
  134.         numDeathsa='.$numDeathsa.',numDeathsn='.$numDeathsn.',
  135.         championsKilleda='.$championsKilleda.',championsKilledn='.$championsKilledn.',
  136.         goldEarneda='.$goldEarneda.',goldEarnedn='.$goldEarnedn
  137.         )
  138.         or die (mysqli_error($connect).'update error on INSERT/UDATE');
  139.    
  140.     //Fin du calcul du temps de traitement
  141.     $timeend=microtime(true);
  142.     echo "<b>".$name."</b> : Script execute en ".number_format($timeend-$timestart, 3)." sec<br/>";
  143.  
  144. //espacement règlementaire pour les requête API chez riot
  145. sleep(1);
  146. }
  147. ?>
Advertisement
Add Comment
Please, Sign In to add comment