probleme calcul en php

Eléphant du PHP | 335 Messages

18 mai 2005, 16:43

bonjour alors voila mon code :
mysql_select_db("arnis01");  
	$str_requete = "SELECT mois, SUM(total) as nombre FROM sla WHERE annee=".$annee." GROUP BY mois HAVING mois LIKE '01'";
    $o_result = mysql_query($str_requete); 
	$a_result = mysql_fetch_array($o_result, MYSQL_ASSOC);  
  	$average1 = 100-(("".$a_result["nombre"]*100)/"$min"); 
	echo "$average1";
Le résultat de $average1 n'est pas bon.
Lorsque je fais echo "".$a_result["nombre"] j'obtiens 147.
Si je remplace dans $average1 "".$a_result["nombre"] par 147, la j'obtiens le bon résultat.

C'est étrange!

Merci pour l'aide...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 mai 2005, 16:54

Si tu cherches à faire des calculs, il ne faut pas que tu fasses intervenir les chaines de caractères.

Si tu les mets dans le cas où la variable est nulle, il vaut mieux faire un test avant.

Sinon remplace ta ligne par celle là :
$average1 = 100-(($a_result["nombre"]*100)/$min);
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 335 Messages

18 mai 2005, 17:12

Sinon, je voulais savoir :

est ce possible d'afficher le resultat de mes calculs arrondi a deux chiffres après la virgule?

si oui comment?

merci...

Mammouth du PHP | 19672 Messages

18 mai 2005, 17:21

Avec la fonction round()
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 335 Messages

19 mai 2005, 10:52

Voila la calcul que je veux faire :
echo "<td>($average1 + $average2 + $average3)/3</td>";
Ca m'affiche (100+100+100)/3

Si je veux que ca m'affiche le résultat, suis je obligé de faire un truc du genre :
$calcul=$average1 + $average2 + $average3)/3;
echo "<td>$calcul</td>";
Est -il possible de faire ca en une ligne?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

19 mai 2005, 10:55

Oui, comme ça :
echo "<td>".(($average1 + $average2 + $average3)/3)."</td>";
Mais c'est moins clair et plus cible aux erreurs !!!
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer