IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Mise à jours des points de parrainage un peu compliquée


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Par défaut Mise à jours des points de parrainage un peu compliquée
    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.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Par défaut up!
    Je up le message car je n'ai tjours pas trouvé comment faire
    quelque a t'il une idée pour m'aider svp

  3. #3
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Citation Envoyé par piere33
    //mise à jour total des points
    mysql_query("UPDATE membre SET points_total=newgeneral+quizzgeneral+gain_parrain");
    Pourquoi ne pas rajouter WHERE id_parrain='.$id['id'] ici pour que la mise à jour ne porte que sur l'utilisateur courant ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Par défaut
    Citation Envoyé par Maximilian
    Pourquoi ne pas rajouter WHERE id_parrain='.$id['id'] ici pour que la mise à jour ne porte que sur l'utilisateur courant ?
    non justement il faut que la mise a jour ce fasse pour tous les utilisateurs, et le probleme ce situe au niveau des gain_parrain

    Pour la mise à jour des points_total de tous les utilisateurs pas de soucis mais vu que gain_parrain est mis a jour seulement pour l'utilisateur courant cela fausse le resultat du classement

    il faudrai qu'au meme moment chaque filleuls envois 10% de leur gains à leur parrain respectif

  5. #5
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    A partir du moment ou tu associes le clic d'un utilisateur au déclenchement d'un processus qui n'a rien à voir avec cet utilisateur, il faut s'attendre à ce genre de problèmes...

    Donc pour moi soit tu mets à jour les points destinés au parrain au moment exact où il sont gagnés par le filleul, soit tu mets à jour les points d'un parrain au moment ou ce parrain ouvre la fameuse page.

    Je ne vois pas comment faire autrement

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Par défaut
    Ok je pense que je vais plutot modifier mes bots Irc pour le calcul des gains parrain au fur et a mesure du jeu .
    Mais sinon en utilisant les boucles, GROUP BY et HAVING ca ne serai pas faisable?
    Je sais pas comment on pourrai structurer tous ca mais il doit bien y avoir un moyen de mettre a jour des données dans le champ d'un utilisateur en fonction du contenu d'un champ d'un autre utilisateur

    Merci pour tes réponses en tous cas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] génerer des points et mise à jour des couleurs sur un graphe radar
    Par hobine dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 14/05/2013, 09h57
  2. Chart : mise à jour des points d'une série
    Par casrole dans le forum Windows Forms
    Réponses: 1
    Dernier message: 28/03/2013, 21h54
  3. Réponses: 10
    Dernier message: 03/03/2009, 12h46
  4. [JTable] mise à jour des données
    Par tripop dans le forum Composants
    Réponses: 3
    Dernier message: 04/02/2009, 19h52
  5. Mise à jour des tables liées + TIMESTAMP
    Par Homegrown dans le forum Access
    Réponses: 11
    Dernier message: 25/04/2005, 22h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo