Page 1 sur 1

calculs en PHP

Posté : 13 mars 2012, 17:46
par piotrowski-s
Bonjour à tous, j'ai une requête, qui est censé me renvoyer un nombre mais elle me renvoit rien. Or pourtant toutes les conditions sinequa none sont bien vérifiées.

Voici le code.
 <td width="150" bgcolor="#EEEEEE">SOMMES ENCAISSEES</td>

                    <td width="153" align="right" bordercolor="#D9D9D9" bgcolor="#EEEEEE"><?php $sql3 = 'SELECT SUM(montant) as montant FROM versements WHERE n_doss=' . $_GET['n_doss'] . '';

$req3 = mysql_query ($sql3) or die ('Erreur SQL !<br>'.$sql3.'<br>'.mysql_error ()); 

while($data2 = mysql_fetch_assoc ($req3)) 

{ ?>
                      <?php if (empty($data2['montant'])) {

echo '0,00'; }

else { echo $data2['montant']; }

 ?>
                      <?php } ?>
 &euro;</td>

                    <td width="55" align="center" bordercolor="#D9D9D9" bgcolor="#EEEEEE"> </td>
                </tr>

                <tr>
                    <td width="150" bgcolor="#D9D9D9">A NOUS REVENIR</td>

                    <td width="153" align="right" bordercolor="#D9D9D9" bgcolor="#D9D9D9"><?php $valeur2 = ($data2['montant']* $user['bareme'])/100 ; echo $valeur2 ?> &euro;</td> 
en fait je veux récupérer un pourcentage sur un montant et ce montant est la somme totale de divers versements. lorsque je fais un echo pour les versements, tout apparait bien comme il faut, mais cette valeur n'est pas prise en compte pour le calcul.

Re: calculs en PHP

Posté : 13 mars 2012, 17:49
par xTG
Vérifies ce que tu as dans $user['bareme'].
De plus vu que tu n'as qu'un seul enregistrement ta boucle while() ne sert pas à grand chose.

Re: calculs en PHP

Posté : 13 mars 2012, 17:51
par piotrowski-s
dans bareme j'ai bien un nombre (7)

Re: calculs en PHP

Posté : 13 mars 2012, 17:52
par xTG
Donc 100% représente 7€ ? ;)

Re: calculs en PHP

Posté : 13 mars 2012, 17:54
par piotrowski-s
non, 7 c'est le pourcentage applicable.

Re: calculs en PHP

Posté : 13 mars 2012, 18:00
par xTG
Au temps pour moi, je n'avais pas lu le HTML.

As-tu supprimé la boucle ? Car il doit tenter de la parcourir une seconde fois et donc écraser le résultat trouvé.
Jamais testé en pratique, mais ce serait de bonne logique selon moi.

Re: calculs en PHP

Posté : 13 mars 2012, 18:05
par piotrowski-s
bah si je supprimes la boucle il ne va pas ma faire la somme des versements?

Re: calculs en PHP

Posté : 13 mars 2012, 18:08
par xTG
La boucle est inutile, pas le calcul qui est dedans. ;)
//...
while( $data = mysql_fetch_array($res) ){
  // ...
}
revient dans le cas d'un enregistrement unique à :
// ...
$data = mysql_fetch_array($res);
// ...
Car mysql_fetch_xxx renvoie false lorsqu'il n'y a plus d'enregistrement, mais sinon elle renvoie le n-uplet trouvé (ce qui est donc différent de false et on rentre dans l'itération de la boucle).

Re: calculs en PHP

Posté : 13 mars 2012, 18:11
par piotrowski-s
mais concrètement, je ne comprends pas, je le laisse ou le supprime? si je le supprimes je le remplace par quoi? Cordialement.

Re: calculs en PHP

Posté : 13 mars 2012, 18:50
par xTG
//...
while( $data = mysql_fetch_array($res) ){
  // ...
}
revient dans le cas d'un enregistrement unique à :
// ...
$data = mysql_fetch_array($res);
// ...

Re: calculs en PHP

Posté : 13 mars 2012, 21:47
par sirakawa
$data = mysql_fetch_array($res); // avec grande raison
SUGGESTION découlant des remarques précédentes et de la lecture du code visible...
// mais d'où sort ce $user['bareme']? c'est visiblement un tableau mais ça coûterait peu d'écrire:
$bareme = $user['bareme']; print "<br> bareme $bareme";
et de se servir de cette variable dans le calcul...