par
Alien » 25 mars 2013, 19:18
Je debute en php, je ne pense pas que ce soit un probleme de logique, mais ca reste possible, il m'affiche correctement l'utilisateur et l'inventaire du premier joueur en ligne, mais tous le joueurs suivant on le meme inventaire que le premier, j'ai deja utilisé la technique du on efface tout et on recommence, mais j'ai tjrs le meme probleme a l'arrive
mysql_connect($MySQL["host"], $MySQL["username"], $MySQL["password"]);
mysql_select_db($MySQL["database"]);
$query = "SELECT `invsql_users`.`name`, `invsql_inventories`.*\n"
. "FROM invsql_users, online_players, invsql_inventories\n"
. "WHERE ((`invsql_users`.`name` =`online_players`.`player`) AND (`online_players`.`online` =1))";
$query2 = "SELECT `online_players`.`player`\n"
. "FROM online_players\n"
. "WHERE (`online_players`.`online` =1)";
$Nbjr=array();
$joueurs=array();
$Result2 = mysql_query($query2);
$i = 1;
$Nbjr=0;
$rows = mysql_num_rows($Result2);
while( $row = mysql_fetch_array($Result2) ){
$joueurs[$i]=$row["player"];
$Nbjr=$i;
printf("<br> %d %s",$Nbjr,$row["player"]);
$i++;
}
if($Nbjr==0){
printf("Aucun joueurs en ligne");
}
else
{
$tabobus=array(array());
$tabinit=array(array());
printf("<br><br>");
$Result = mysql_query($query);
$i = 0;
$rows = mysql_num_rows($Result);
while( $row = mysql_fetch_array($Result) )
{ $tabobus[$i]["A"]=($row["name"]);
$tabobus[$i]["B"]=($row["world"]);
$tabobus[$i]["C"]=($row["owner"]);
$tabobus[$i]["D"]=($row["item"]);
$tabobus[$i]["E"]=($row["count"]);
$tabobus[$i]["F"]=($row["slot"]);
$i++;
}
printf("nombre d'entree: %d",$i);
$nbre=$i;
for($i=1;$i<$Nbjr+1;$i++)
{ printf("<br><br>joueur%d %s <br>",$i,$joueurs[$i]);
for($y=0;$y<36;$y++)
{ for($z=0;$z<2;$z++)
{ $tabinit[$y][$z]=0;
}
}
for($x=0;$x<$nbre;$x++)
{ if($joueurs[$i]==$tabobus[$x]["A"])
{ if($tabobus[$x]["C"]==1)
{ if($tabobus[$x]["B"]=="001")
{ $tabinit[$tabobus[$x]["F"]][0]=$tabobus[$x]["D"];
$tabinit[$tabobus[$x]["F"]][1]=$tabobus[$x]["E"];
}
}
}
}
for($y=0;$y<36;$y++)
{ printf(" |%dx%d ",$tabinit[$y][0],$tabinit[$y][1]);
if(($y+1)%9==0){printf("<br>");}
}
}
Je debute en php, je ne pense pas que ce soit un probleme de logique, mais ca reste possible, il m'affiche correctement l'utilisateur et l'inventaire du premier joueur en ligne, mais tous le joueurs suivant on le meme inventaire que le premier, j'ai deja utilisé la technique du on efface tout et on recommence, mais j'ai tjrs le meme probleme a l'arrive
[php] mysql_connect($MySQL["host"], $MySQL["username"], $MySQL["password"]);
mysql_select_db($MySQL["database"]);
$query = "SELECT `invsql_users`.`name`, `invsql_inventories`.*\n"
. "FROM invsql_users, online_players, invsql_inventories\n"
. "WHERE ((`invsql_users`.`name` =`online_players`.`player`) AND (`online_players`.`online` =1))";
$query2 = "SELECT `online_players`.`player`\n"
. "FROM online_players\n"
. "WHERE (`online_players`.`online` =1)";
$Nbjr=array();
$joueurs=array();
$Result2 = mysql_query($query2);
$i = 1;
$Nbjr=0;
$rows = mysql_num_rows($Result2);
while( $row = mysql_fetch_array($Result2) ){
$joueurs[$i]=$row["player"];
$Nbjr=$i;
printf("<br> %d %s",$Nbjr,$row["player"]);
$i++;
}
if($Nbjr==0){
printf("Aucun joueurs en ligne");
}
else
{
$tabobus=array(array());
$tabinit=array(array());
printf("<br><br>");
$Result = mysql_query($query);
$i = 0;
$rows = mysql_num_rows($Result);
while( $row = mysql_fetch_array($Result) )
{ $tabobus[$i]["A"]=($row["name"]);
$tabobus[$i]["B"]=($row["world"]);
$tabobus[$i]["C"]=($row["owner"]);
$tabobus[$i]["D"]=($row["item"]);
$tabobus[$i]["E"]=($row["count"]);
$tabobus[$i]["F"]=($row["slot"]);
$i++;
}
printf("nombre d'entree: %d",$i);
$nbre=$i;
for($i=1;$i<$Nbjr+1;$i++)
{ printf("<br><br>joueur%d %s <br>",$i,$joueurs[$i]);
for($y=0;$y<36;$y++)
{ for($z=0;$z<2;$z++)
{ $tabinit[$y][$z]=0;
}
}
for($x=0;$x<$nbre;$x++)
{ if($joueurs[$i]==$tabobus[$x]["A"])
{ if($tabobus[$x]["C"]==1)
{ if($tabobus[$x]["B"]=="001")
{ $tabinit[$tabobus[$x]["F"]][0]=$tabobus[$x]["D"];
$tabinit[$tabobus[$x]["F"]][1]=$tabobus[$x]["E"];
}
}
}
}
for($y=0;$y<36;$y++)
{ printf(" |%dx%d ",$tabinit[$y][0],$tabinit[$y][1]);
if(($y+1)%9==0){printf("<br>");}
}
}[/php]