Probleme de calculs

JOJO -  
jee pee Messages postés 31964 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...
Configuration: Windows XP
Firefox 2.0.0.7

6 réponses

  1. jee pee Messages postés 31964 Date d'inscription   Statut Modérateur Dernière intervention   10 010
     
    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
  2. 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
  3. jee pee Messages postés 31964 Date d'inscription   Statut Modérateur Dernière intervention   10 010
     
    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
  4. JOJO
     
    ok mais meme en creant une requete auparavant cela ne fonctionne pas...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. jee pee Messages postés 31964 Date d'inscription   Statut Modérateur Dernière intervention   10 010
     
    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