Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //error displaying
- ini_set('display_errors', 1);
- ini_set('log_errors', 1);
- ini_set('error_log', dirname(__file__) . '/log_error_php.txt');
- error_reporting(E_ALL);
- //connect bdd
- $user="xxx";
- $pw="xxx";
- $db="xxx";
- $connect = mysqli_connect('localhost', $user, $pw, $db)
- or die('db connect error');
- //gestionnaire de requête
- require_once 'Unirest.php';
- //KEY API
- $key="xxxxxxxxxxx";
- //liste des joueurs
- $pseudolist=array('mazuru','wiliwilliam','vanlaulow','galora','skara45','mhore77','mrkrar','stupepic','gonadesoyeuse',
- 'hebulus','mrpinpin','chokorato','demonmaterya','enelya83','guraz','hystenewbie',
- 'ledjau','lightspears','monchery','pouip','ptiskity','quebrutal','quickkill','sirnitns','smurf38','teusch','wiliwilliam2','yllegal','zarkaouette','ghorrie','ultimatebyte');
- //déclaration de la chaîne de pseudp
- $pseudos="";
- //incrémentation des pseudos pour la requête groupée des ID
- foreach($pseudolist as $name){
- $pseudos.=strtolower($name).',';
- }
- //on enlève la virgule de trop à la fin
- $pseudos=substr($pseudos,0,-1);
- //récupère l'ID des pseudo
- $q = Unirest\Request::get("https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/$pseudos?api_key=$key");
- //boucle de chaque PLAYERS
- foreach ($pseudolist as $name){
- //calcul du temps de traitement
- $timestart=microtime(true);
- //réupère les stats des 10 dernières parties
- $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);
- //déclaration variables PLAYERS
- //indice du nombre de parties
- $in=0;
- $ia=0;
- //assist total
- $assistsa=0;
- $assistsn=0;
- //nombre de morts
- $numDeathsa=0;
- $numDeathsn=0;
- //nombre de kills
- $championsKilleda=0;
- $championsKilledn=0;
- //nombre de gold gagné
- $goldEarneda=0;
- $goldEarnedn=0;
- //boucle de chaque GAME
- foreach($q2->body->games as $game){
- //subTypes de game ARAM
- if($game->subType=="ARAM_UNRANKED_5x5"){
- $ia++;
- if(isset($game->stats->assists)){$assistsa += $game->stats->assists;}
- if(isset($game->stats->numDeaths)){$numDeathsa += $game->stats->numDeaths;}
- if(isset($game->stats->championsKilled)){$championsKilleda += $game->stats->championsKilled;}
- if(isset($game->stats->goldEarned)){$goldEarneda += $game->stats->goldEarned;}
- }
- //subTypes de game NORMAL
- elseif($game->subType=="RANKED_SOLO_5x5" or $game->subType=="NORMAL"){
- $in++;
- if(isset($game->stats->assists)){$assistsn += $game->stats->assists;}
- if(isset($game->stats->numDeaths)){$numDeathsn += $game->stats->numDeaths;}
- if(isset($game->stats->championsKilled)){$championsKilledn += $game->stats->championsKilled;}
- if(isset($game->stats->goldEarned)){$goldEarnedn += $game->stats->goldEarned;}
- }else{}
- /*[FLO => C'EST ICI QUE JE RECUPERE LA VARIABLE game->championId qui est l'ID du champion joué.
- et du coup, je voudrais stocker les infos de CETTE partie et les additionner dans la ligne déjà existante de ce champion, dans
- 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
- ICI je vais écrire une nouvelle ligne dans le fichier avec comme structure Nomdechampion,kill,death exemple sur 3 parties:
- "Morgana",10,3
- "Teemo",5,7
- "caitlyn",12,2
- 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
- paramètres
- INFILE, qui renvoie une erreur lors d'une double key unique
- REPLACE va simplement remplacer les valeurs de la ligne existante au lieu de les additionner
- IGNORE va simplement ignorer les doublons
- LOCAL = INGORE
- j'espère que mon explication ci - dessus précise mon soucis de stockage des champions
- */
- //fin de la boucle de chaque partie
- }
- //sauvegarde/update des infos players dans la Base des joueurs
- mysqli_query($connect,'
- INSERT INTO lolkoreus (
- summonerId,
- summonerName,
- profileIconId,
- indicea,indicen,
- assistsa,assistsn,
- numDeathsa,numDeathsn,
- championsKilleda,championsKilledn,
- goldEarneda,goldEarnedn,
- )
- VALUES (
- '.$q->body->$name->id.',
- "'.$q->body->$name->name.'",
- '.$q->body->$name->profileIconId.',
- '.$ia.','.$in.',
- '.$assistsa.','.$assistsn.',
- '.$numDeathsa.','.$numDeathsn.',
- '.$championsKilleda.','.$championsKilledn.',
- '.$goldEarneda.','.$goldEarnedn.'
- )
- ON DUPLICATE KEY UPDATE
- summonerName="'.$q->body->$name->name.'",
- profileIconId='.$q->body->$name->profileIconId.',
- indicea='.$ia.',indicen='.$in.',
- assistsa='.$assistsa.',assistsn='.$assistsn.',
- numDeathsa='.$numDeathsa.',numDeathsn='.$numDeathsn.',
- championsKilleda='.$championsKilleda.',championsKilledn='.$championsKilledn.',
- goldEarneda='.$goldEarneda.',goldEarnedn='.$goldEarnedn
- )
- or die (mysqli_error($connect).'update error on INSERT/UDATE');
- //Fin du calcul du temps de traitement
- $timeend=microtime(true);
- echo "<b>".$name."</b> : Script execute en ".number_format($timeend-$timestart, 3)." sec<br/>";
- //espacement règlementaire pour les requête API chez riot
- sleep(1);
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment