06-01-2008, 07:31 PM
(Modification du message : 06-01-2008, 07:42 PM par Sephi-Chan.)
Quelque chose m'échappe. Je ne comprends pas le fonctionnement de la succession de if.
J'obtiens la requête finale :
On voit alors que les champs role ne sont pas affectés. De plus, il me met des 2 aux seuls endroits où il place quelque chose. Si j'enlève le else (qui n'est pas censé arriver), il me place vraiment des 2 partout. :/
Les données (j'ai changé un peu les formules, mais le compte est bon) :
Le PHP :
J'obtiens la requête finale :
Code :
UPDATE player_game_role SET role = 2 WHERE player = 4,
UPDATE player_game_role SET role = 2 WHERE player = 2,
UPDATE player_game_role SET role = 2 WHERE player = 1,
UPDATE player_game_role SET role = WHERE player = 3,
UPDATE player_game_role SET role = WHERE player = 8,
UPDATE player_game_role SET role = WHERE player = 6,
UPDATE player_game_role SET role = WHERE player = 5
Les données (j'ai changé un peu les formules, mais le compte est bon) :
Citation :7 joueurs (6 personnages spéciaux) :
* Loup-Garou => 3
* Voyant => 1
* Alchimiste => 1
* Marchand de sable => 1
* Villageois => 1
Le PHP :
Code PHP :
<?php
$i = 0;
$sql_update = '';
$query = 'SELECT player FROM player_game_role WHERE game = (SELECT id FROM game ORDER BY id DESC LIMIT 0, 1) ORDER BY RAND()';
$sql = mysql_query($query) or die(mysql_error());
while($results = mysql_fetch_assoc($sql)){
if ($i < $this->playersByRole['Loup-Garou']){ $my_classe = 2; }
// Le joueur sera un loup-garou (id : 2)
elseif ($i >= $this->playersByRole['Loup-Garou'] && $i < $this->playersByRole['Voyant']){ $my_classe = 4; }
// Le joueur sera un alchimiste (id : 4)
elseif ($i >= $this->playersByRole['Voyant'] && $i < $this->playersByRole['Marchand de sable']){ $my_classe = 3; }
// Le joueur sera un voyant (id : 3)
elseif ($i >= $this->playersByRole['Marchand de sable'] && $i < $this->playersByRole['Alchimiste']){ $my_classe = 5; }
// Le joueur sera un marchand de sable (id : 5)
elseif ($i >= $this->playersByRole['Alchimiste'] && $i < $this->playersByRole['Villageois']){ $my_classe = 1; }
// Le joueur sera un villageois (id : 1)
else { $my_classe = NULL; } // Ne devrait pas arriver ^^
if ($i > 0){ $sql_update .= ',<br />'; }
$sql_update .= 'UPDATE player_game_role SET role = '.$my_classe.' WHERE player = '.$results['player'];
$i++;
}
Sephi-Chan, qui arrive pas à se concentrer dessus...