Problème fonction qui ne récupère qu'une valeur

Barbaque
Invité n'ayant pas de compte PHPfrance

08 sept. 2007, 15:02

Bonjour,

J'ai un problème et je voulais savoir si quelqu'un pouvait éclairer ma lanterne...

Alors j'ai une table, dans cette table est référencé ID , ordinateurs, espionnage de chaque joueurs.
Je souhaite faire une fonction qui injecte dans une autre table en fonction de l'ID toutes les valeurs de chaques joueurs en même temps...

voici ma fonction :
function maj_points(){
	global $db;

//recuperation des valeurs d'un champs
$sql_select = 'SELECT joueur, ordinateurs, espionnage FROM '.TABLE_PLAYER_RECHERCHES;
$result=$db->sql_query($sql_select);

while($i=$db->sql_fetch_assoc($result)){
		$total=$i['ordinateurs']+$i['espionnage'];
$joueur=$i['joueur'];

$sql='UPDATE '.TABLE_GAME_SCORES.' SET general='.$total.' WHERE joueur='.$joueur;
$result=$db->sql_query($sql);

}
return($result);
}
maj_points();
Si vous avez besoin de plus d'infos, n'hésitez pas ;)

ViPHP
ViPHP | 5924 Messages

08 sept. 2007, 16:47

Euh, ouais, c'est bien gentil. Elle est où la question ?

Invité
Invité n'ayant pas de compte PHPfrance

08 sept. 2007, 19:20

en faite, ton erreur est que tu a oublier l'ID du joueur dans le where.

là tu dis de faire un update sur le meme '$total' sur tous les joueurs
$sql='UPDATE '.TABLE_GAME_SCORES.' SET general='.$total.' WHERE joueur='.$joueur[b]['id'][/b];

ViPHP
ViPHP | 2144 Messages

08 sept. 2007, 20:11

en faite, ton erreur est que tu a oublier l'ID du joueur dans le where.

là tu dis de faire un update sur le meme '$total' sur tous les joueurs
$sql='UPDATE '.TABLE_GAME_SCORES.' SET general='.$total.' WHERE joueur='.$joueur[b]['id'][/b];
Difficile à dire sans connaitre précisement la structure des tables, mais j'ai l'impression que c'est fait dans le code que nous a montré Barbaque.
Maintenant, l'explication du problème manque de détails, et surtout je ne vois pas trop ce que Barbaque attend de nous...

Barbaque
Invité n'ayant pas de compte PHPfrance

08 sept. 2007, 22:54

Excusez moi pour le manque d'informations,

alors voila, je souhaite recuperer les valeurs d'une table en fonction d'un ID pour ensuite toujours en fonction de cet ID, remettre les valeurs piochées dans une autre table.
Cependant j'ai un problème car je n'arrive pas à faire un update de TOUT les ID en meme temps,
function maj_points(){
   global $db;

//recuperation des valeurs d'un champs
$sql_select = 'SELECT joueur, ordinateurs, espionnage FROM '.TABLE_PLAYER_RECHERCHES;
$result=$db->sql_query($sql_select);


while($i=$db->sql_fetch_assoc($result)){
      $total=$i['ordinateurs']+$i['espionnage'];
$joueur=$i['joueur'];

//ici je souhaite mettre la valeur que j'ai additionner auparavent : $total dans general mais en fonction de l'ID récuperer auparavant.Et ce pour tout les ID present dans la table.TABLE_PLAYER_RECHERCHES

$sql='UPDATE '.TABLE_GAME_SCORES.' SET general='.$total.' WHERE joueur='.$joueur;
$result=$db->sql_query($sql);

}
return($result);
}
maj_points();
voila je ne sais pas comment faire, car ca m'update tout la table sur le 1er ID que j'ai.

merci