Probleme de calculs

JOJO -  
jee pee Messages postés 9345 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour

J ai un petit souci avec un calcul...

Je souhaiterai faire en sorte que ma base de données soit mise a jour de la maniere suivante :

On selectionne le membre qui est le parrain d'un autre membre et on ajoute 20% du nombre de points qui ont ete attribué au filleul.

Ex : LE membre koko est le filleul de niki. Il s inscrit a une campagne et recoit 20 points qui seront crédité sur son compte. A son tour, niki recevra 20% des 20 points qui ont ete attribués à koko...soit 4 points qui seront crédité sur le compte de niki.

J'ai donc fait la ligne de code suivante :

$sql= mysql_query("UPDATE membres SET soldepoints=soldepoints+('$nombrepoints2+20%')-$nombrepoints2 WHERE pseudo='$parrain'") or die('Erreur SQL...veuillez contacter l\'administrateur'.mysql_error()); 


On met a jour la table membre donc le pseudo est égal à celui du parrain et on ajoute a son solde de points actuel, le nombre de points attribué a la campagne validée par le filleul auxquels on ajoute 20% et auxquels on enleve a nouveau le nombre de points que vaut la campagne...

Soit pour l exemple ci dessus : Solde de points de niki + (20 points de koko + 20%) - 20 = 4

Le soucis est que cela ne met pas a jour la base de donnée...il n y a aucun message d erreur mais lorsque je consulte le nouveau solde de niki; le solde n a pas ete mis jour...

6 réponses

jee pee Messages postés 9345 Date d'inscription   Statut Modérateur Dernière intervention   9 799
 
bonjour,

ne connaissant ni mysql, ni son interfacage sous php mes remarques n'ont qu'une portée généraliste et peut être fausses :

1/ es-tu certain que sur '$nombrepoints2+20%' il faille utiliser une simple cote ' dans la syntaxe pour encadrer l'expression ?

2/ pour rajouter 20% il y a plus simple : soldepoints=soldepoints + ( $nombrepoints2 * 0.20 )

cdt
0
JOJO
 
ok, jee pee !

Tu as raison pour la facon de calculer, on va donc partir sur cette base :

$sql= mysql_query("UPDATE membres SET soldepoints=soldepoints+('$nombrepoints2*0.20') WHERE pseudo='$parrain'") or die('Erreur SQL...veuillez contacter l\'administrateur'.mysql_error()); 


Par contre maintenant il me met bien le champ a jour mais il n a pas pris la bonne valeur...En effet, il a credite le compte de koko de 20 points et le compte de niki de 20 points
0
jee pee Messages postés 9345 Date d'inscription   Statut Modérateur Dernière intervention   9 799
 
il faut peut etre calculer le 20 % avant pour l'avoir dans une variable et juste ajouter après cette variable

ou le separateur decimal n'est pas le . mais la vigule , 0.20 ==> 0,20
0
JOJO
 
ok mais meme en creant une requete auparavant cela ne fonctionne pas...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JOJO
 
Bonsoir, cela n a pas marche...mais j ai fait differemment...

$pointsparrain = $nombrepoints2*20;
$sql= mysql_query("UPDATE membres SET soldepoints=soldepoints+$pointsparrain/100 WHERE pseudo='$parrain'") or die('Erreur SQL...veuillez contacter l\'administrateur'.mysql_error()); 


Et ca donne le meme resultat...! :p
0
jee pee Messages postés 9345 Date d'inscription   Statut Modérateur Dernière intervention   9 799
 
et t'es sur qu'il y a quelquechose dans $nombrepoints2, parceque si = zero, 20% de zero = 0 et donc tout fonctionne, pas d'erreur sql mais resultat n'est aditionné "que de zero point !"
0