Probleme de calculs
JOJO
-
jee pee Messages postés 9442 Date d'inscription Statut Modérateur Dernière intervention -
jee pee Messages postés 9442 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 :
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...
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...
Configuration: Windows XP Firefox 2.0.0.7
6 réponses
-
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 -
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 -
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 -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 -
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 !"