Bonjour
Je bloque depuis 2 jours sur un simple probleme d'Update
Ma table comporte entre autre les champs suivants:
  • id : l'utilisateur
  • pseudo : son pseudo
  • points_total : total de ses points (Jeux + gain_parrain)
  • id_parrain : L'id de son parrain
  • don_parrain : Les points donnés à son parrain (10% de points_total)
  • gain_parrain : Les points gagnés grace à ses filleuls
Je ne peut pas mettre à jours les points destiné au parrain au moment où il sont gagnés par leurs filleuls (systeme de point un peu particulier, les jeux se deroulent sur differents salons IRC), je doit donc faire la mise à jour à chaque ouvertures de pages utilisant les données.
Jusque ici je m'en sort, les mises à jours se font toutes sans probleme pour chaque type de points, de salons ou de jeux.

J'arrive à mettre à jour les gain_ parrain de celui qui ouvre la page comme ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 //recupere id utilisateur
   $select = "SELECT id FROM membre WHERE email='$email'";
   $result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
   $id = mysql_fetch_array($result);
   mysql_free_result($result);  
 
//mise à jours de tous les points parrains et points de jeux 
   mysql_query("UPDATE membre SET don_parrain=points_total*10/100"); 
   mysql_query("UPDATE membre SET newgeneral=newprincipal+newepargne+newvalitem");  
   mysql_query("UPDATE membre SET quizzgeneral=quizznewpoint+quizzaffi1point");
 
//recupere les gains parrain utilisateur
   $sql = 'SELECT SUM(don_parrain) as totalpoint FROM membre WHERE id_parrain='.$id['id'];
   $somme = mysql_query($sql,$db) or die ('Erreur : '.mysql_error() );
   $totalpoint = mysql_fetch_assoc($somme);
 
//mise à jour gains parrain
   $requete = 'UPDATE membre SET gain_parrain='.$totalpoint['totalpoint'].' WHERE id='.$id['id'];
   mysql_query ($requete,$db) or die ('erreur : '.mysql_error() );
 
//mise à jour total des points
   mysql_query("UPDATE membre SET points_total=newgeneral+quizzgeneral+gain_parrain");
Mais les resultats sont faussé puisqu'il ne prennent pas en compte les gain_parrain des autres utilisateurs, seulement de celui qui est sur la page

Ma requete:

Mettre à jour la somme des 'don_parrain' des filleuls dans le champs 'gain_parrain' du parrain lorsque l'id du filleul correspond à l'id_parrain

je ne connais mysql que depuis quelques temps et je doit surement buter sur un probleme de syntax, j'ai toujours réussi à m'en sortir jusqu'à maintenant en regardant les aides, les faq, les forums, mais là je seche complet (pour un truc tout bete si ca se trouve).
merci d'avance à ceux/celles qui pourraient m'aider.