Arrondir et compter

Petit nouveau ! | 3 Messages

09 févr. 2011, 11:13

Bonjour à tous, étant débutant en php, j'ai quelques soucis avec les arrondies, et faire la somme de plusieurs montant, voici une partie du code :

<tr>
<th>Quantité</th>
<th>Produit</th>
<th>Montant</th>
</tr>

<?php
$idmembre = $_SESSION['id'];
$sql = "select * from lignecommande, produit where lignecommande.idproduit=produit.idproduit and idmembre=$idmembre and etat='encours';";
$requete=mysql_query($sql) or die(mysql_error());

if (mysql_num_rows($requete) > 0) {
while ($resultat = mysql_fetch_assoc($requete)){
echo"<tr>
<td>"
.$resultat['qte']."</td>
<td>"
.$resultat['designation']."</td>
<td>"
.$resultat['qte']*$resultat['prixkg']*$resultat['poids']."</td> //ici cela me renvoi le montant d'une ligne_commande, je dois l'arrondir avec la fonction round() mais cela me pose problème
</tr>";
}
}
else{
echo" Votre panier est vide";
}
?>
<tr>
<th>Total</th>
<td></td>
<td colspan=2>............</td>// ici je souhaiterais compter chaque montant de toute les lignes_commande retournées. Peut-être utiliser un compteur, mais je n'ai pas d'idee ..

</tr>
					<tr>	
						<th>Quantité</th>
						<th>Produit</th>
						<th>Montant</th>
					</tr>
						<?php
						$idmembre = $_SESSION['id'];
						$sql = "select * from lignecommande, produit where lignecommande.idproduit=produit.idproduit and idmembre=$idmembre and etat='encours';";
						$requete=mysql_query($sql) or die(mysql_error());
						if (mysql_num_rows($requete) > 0) {
							while ($resultat = mysql_fetch_assoc($requete)){
								echo"<tr>
									<td>".$resultat['qte']."</td>
									<td>".$resultat['designation']."</td>
									<td>".$resultat['qte']*$resultat['prixkg']*$resultat['poids']."</td>
								</tr>";
							}
						}
						else{
							echo" Votre panier est vide";
						}
						?>
<tr>
						<th>Total</th>
						<td></td>
						<td colspan=2>.......</td>
					</tr>
Quelqu'un peut il m'aider ? :priere: :priere:

ViPHP
xTG
ViPHP | 7331 Messages

09 févr. 2011, 12:05

Quel est ton soucis avec la fonction round() ?

Petit nouveau ! | 3 Messages

09 févr. 2011, 12:14

il faudrait que je fasse un roud de cette ligne la , qui marche, elle me retourne un nombre, a 6 decimal lol, je n'en veux que deux
[php]<td>".$resultat['qte']*$resultat['prixkg']*$resultat['poids']."</td>
[/php]


et je n'y arrive pas, il me dit :
Parse error: parse error, expecting `','' or `';'' on line 111

lorsque je fais:
<td>"round($resultat['qte']*$resultat['prixkg']*$resultat['poids'],2);"</td>

ViPHP
ViPHP | 5462 Messages

09 févr. 2011, 12:18

sépare ton code, met ca dans une variable que d'afficher après ça sera plus propre, évite aussi de mettre du HTML dans du PHP, c'est plus l'inverse qu'il faut faire, et je te conseil aussi de faire ca direct dans ta requête SQL

ViPHP
xTG
ViPHP | 7331 Messages

09 févr. 2011, 15:16

Et pour le côté correction du code à pas faire :
echo "<td>" . round($resultat['qte']*$resultat['prixkg']*$resultat['poids'],2) . "</td>";
// OU
echo "<td>";
echo round($resultat['qte']*$resultat['prixkg']*$resultat['poids'],2);
echo "</td>";
L'erreur se voyait rien qu'avec la coloration syntaxique. ;)

Petit nouveau ! | 3 Messages

09 févr. 2011, 19:28

Merci beaucoup xTG ca marche impeccable =)
<td>". round($resultat['qte']*$resultat['prixkg']*$resultat['poids'],2) ." €</td>
Mais maintentant, comment puis-je fais pour afficher la somme de toute les lignes ? Puisque la il me donne un montant par ligne, tant qu'il y a des lignes a lire dans la bdd. J'aurais pu faire un agregat SQL SUM, mais c'est une donnée calculée et non stockée.
:?:

ViPHP
xTG
ViPHP | 7331 Messages

09 févr. 2011, 19:32

Si tu as inséré un calcul dans ton select tu pourras retrouver sa valeur dans tous les n-uplets retournés.
Et donc dans le dernier enregistrement.