Titre: Mise à jours des points de parrainage un peu compliquée
Posté par: piere33 le le 15-10-2006 a 20:16:08
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:
//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. |
Titre: Re:Mise à jours des points de parrainage un peu compliquée
Posté par: piere33 le le 15-10-2006 a 20:20:44
PS :
php5 + MySQL - 4.1.11-Debian_4sarge5-log + hebergement : jexiste
Dsl..
|
Titre: Re:Mise à jours des points de parrainage un peu compliquée
Posté par: gauriz le le 17-10-2006 a 01:43:25
Salut Pierre,
je ne suis pas sur d'avoir tout compris ...
Mais je te dit comment nous on procède sur le site www.star-blog.com (http://www.star-blog.com) qui gere du parrainage et des points :
1 blog a 0 ou 1 filleuls A chaque visite d'un blog, on calcul ses points en comptant : - le nombre de visites, votes, ... - on recherche les filleuls de ce blog qui sont valides (blog avec idblog en cours, en id_parrain clef etrangère)
Cela permet de répartir le calcul des points de manière répartie plutot que sur une page qui ferait TOUT en 1 fois la nuit en batch ...
Voilà, n'hésitez pas à me donner plus de précision si j'ai mal compris !
Cordialement,
Grégory [url=http://www.art-touch.com/?u=gregory]art-touch.com
|
Titre: Re:Mise à jours des points de parrainage un peu compliquée
Posté par: piere33 le le 17-10-2006 a 02:09:03
bonsoir Gauriz
Pour la mise à jour des points, elle se fait sans probleme lorsque l'utilisateur viens voir sa page de gain et justement ca permet comme chez toi de mettre a jour au fur et a mesure et non d'un coup la nuit Ce code marche impec:
Code:
//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() ); |
|
Le probleme c'est quand l'utilisateur ouvre la page du classement des joueurs il actualise ses points de parrainage mais pas l'ensemble des joueurs et donc cela fausse le résultat du classement. D'autant si les filleuls de l'utilisateur parrainent à leur tour Imagine que tu veuille faire un classement de tes blogs par nombre de filleul, comment procederais tu pour mettre a jour les points de tout les blogs d'un coup C'est là qu'est mon probleme...
PS: Merci en tous cas de ta réponse à cette heure Tardive ;-) |
Titre: Re:Mise à jours des points de parrainage un peu compliquée
Posté par: piere33 le le 20-10-2006 a 03:18:13
Svp quelqu'un aurais t'il une idée pour me mettre sur la voie ??? J'ai beau chercher je ne trouve toujours pas comment faire |
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|