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

PHP & Base de données Discussion :

Aditionné et enregistrer


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 149
    Points : 48
    Points
    48
    Par défaut Aditionné et enregistrer
    Bonjour

    Ce que je veut faire : Je veut pouvoir enregistrer dans un champ appelé "cumul",la somme des points des joueurs de la meme 'team'(equipe),l'orsque un des joueurs de la team passe sur une page.

    mon probleme : j'obtient le chiffre 4 dans le champ "cumul" (je ne sais pas dous sa sort car cumul devrai être de l'ordre de 200)

    voila donc le code deféctueux que j'ai crée:
    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
     
    $sql = "SELECT * FROM membre WHERE login='".$_SESSION['login']."'";
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    $data = mysql_fetch_array($req);
     
                --- je charge les points ---
    $pie= mysql_query("SELECT point FROM membre WHERE team='".$data['team']."'");
     
                 ---j'aditione les points---
    $cac +=$pie ;
     
                --- j'enregistre dans cumul le resultat ---
    $mmm = "UPDATE membre SET cumul='".$caca."' WHERE creat='oui' && team='".$data['team']."' ";
                --- j'execute---
    mysql_query($mmm) or die('Erreur SQL !'.$pil.'<br />'.mysql_error());
    Merci

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je comprends pas trop ton code, pour récupérer la valeur d'un champ il faut passer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_fetch_array($req);
    Pour finir tu peux faire l'addition directement dans le update

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 149
    Points : 48
    Points
    48
    Par défaut
    A quel moment je doit faire un "mysql_fetch_array($req);"?

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Voilà ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql = "SELECT * FROM membre WHERE login='".$_SESSION['login']."'";
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    $data = mysql_fetch_array($req);
     
                --- je charge les points ---
    $pie= mysql_query("SELECT point FROM membre WHERE team='".$data['team']."'");
    Jusque là tout va bien mais à partir de cette ligne je comprends plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     ---j'aditione les points---
    $cac +=$pie ;
     
                --- j'enregistre dans cumul le resultat ---
    $mmm = "UPDATE membre SET cumul='".$caca."' WHERE creat='oui' && team='".$data['team']."' ";
                --- j'execute---
    mysql_query($mmm) or die('Erreur SQL !'.$pil.'<br />'.mysql_error());
    $cac sort d'où ??
    $caca lui aussi sort d'où ?
    Pour obtenir le champ point il faut passer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $pts = mysql_fetch_array($pie);
    $point = $pts['point'];
    Au passage faut penser à mettre les die à chaque requête.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 149
    Points : 48
    Points
    48
    Par défaut
    attend on a pas du se comprendre.
    Je donne un exemple,dans la team "test" il a 3 joueurs.
    Le joueurs 1 a 10points
    Le joueurs 2 a 15 points
    et le joueurs 3 a 5 points

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    --- je selectionne les points, en l'occurence 10,15 et 5 ---
    $pie= mysql_query("SELECT point FROM membre WHERE team='".$data['team']."'");
     
    $pts = mysql_fetch_array($pie);
    $point = $pts['point'];
     
     ---j'aditione les points se qui devrai donné 30 point---
    $cac +=$point ;
     
                --- j'enregistre dans cumul le resultat (30)---
    $mmm = "UPDATE membre SET cumul='".$cac."' WHERE creat='oui' && team='".$data['team']."' ";
                --- j'execute---
    mysql_query($mmm) or die('Erreur SQL !'.$pil.'<br />'.mysql_error());

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 99
    Points : 123
    Points
    123
    Par défaut
    salut dans cette partie de code pour moi il n'y a aucune boucle donc ca ne selectionne que le total de point du 1er enregistrement trouvé :

    $pie= mysql_query("SELECT point FROM membre WHERE team='".$data['team']."'");

    $pts = mysql_fetch_array($pie);
    $point = $pts['point'];

    ---j'aditione les points se qui devrai donné 30 point---
    $cac +=$point ;
    soit tu fais une boucle :

    while ($pts = mysql_fetch_array($pie))
    {
    ---j'aditione les points se qui devrai donné 30 point---
    $cac +=$pts['point'];
    }
    soit tu change ta requête :

    $pie= mysql_query("SELECT SUM(point) FROM membre WHERE team='".$data['team']."'");
    en prenant en compte que ton $cac contient un score deja defini parce que comme le signale Kerod ou sait pas d'ou ca sort

    PS : suis pas un génie en SQL mais il me semble que c'est un AND et non un &&
    WHERE creat='oui' && team='".$data['team']."' ";

  7. #7
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je serai partant pour la fonction d'agrégat. Donc ta requete, il serait plus simple de la faire comme ci-dessus mais en rajoutant un petit élément, ce qui donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pie= mysql_query("SELECT SUM(point) as total FROM membre WHERE team='".$data['team']."'");
    Après il te reste plus qu'à récupérer le résultat comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $pts = mysql_fetch_array($pie);
    $total_pts = $pts['total'];
    Après tu fais ton calcul normalement (si tu dois en faire un autre), puis tu insères.

    PS : Pour les requêtes, il est préférable d'utiliser le AND à la place de &&

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 149
    Points : 48
    Points
    48
    Par défaut
    lol sa fait 1h que j'essaye d'appliquer se que tu as mis,j'etai trop fatigué!!
    Mais en tout cas sa marche impec matenant.
    Merci a vous Link3 et Kerod.

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

Discussions similaires

  1. Perte d'enregistrements
    Par AnnSo dans le forum Paradox
    Réponses: 15
    Dernier message: 06/08/2006, 23h39
  2. [VB6] [Crystal] Selection enregistrement
    Par littlecow dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 11/01/2005, 13h08
  3. Enregistrer un RichEdit dans un .Txt
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 2
    Dernier message: 06/08/2002, 11h52
  4. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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