Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/08/2006, 21h26   #1
Futur Membre du Club
 
Inscription : février 2004
Messages : 148
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 148
Points : 18
Points : 18
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 :
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
covin85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 21h36   #2
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Je comprends pas trop ton code, pour récupérer la valeur d'un champ il faut passer par :
Code :
mysql_fetch_array($req);
Pour finir tu peux faire l'addition directement dans le update
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 21h57   #3
Futur Membre du Club
 
Inscription : février 2004
Messages : 148
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 148
Points : 18
Points : 18
A quel moment je doit faire un "mysql_fetch_array($req);"?
covin85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 22h09   #4
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Voilà ton code :
Code :
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 :
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 :
1
2
$pts = mysql_fetch_array($pie);
$point = $pts['point'];
Au passage faut penser à mettre les die à chaque requête.
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 22h25   #5
Futur Membre du Club
 
Inscription : février 2004
Messages : 148
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 148
Points : 18
Points : 18
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 :
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());
covin85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 23h26   #6
Membre du Club
 
Inscription : février 2006
Messages : 99
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 99
Points : 59
Points : 59
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é :

Citation:
$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 :

Citation:
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 :

Citation:
$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 &&
Citation:
WHERE creat='oui' && team='".$data['team']."' ";
Link3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2006, 00h34   #7
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
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 :
$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 :
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 &&
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2006, 13h18   #8
Futur Membre du Club
 
Inscription : février 2004
Messages : 148
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 148
Points : 18
Points : 18
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.
covin85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h54.


 
 
 
 
Partenaires

Hébergement Web