Page 1 sur 1

boucles + sommes de résultats

Posté : 17 mars 2008, 19:28
par dread
Bonjour à tous!

Dans le cadre d'un site gérants des commandes de produits, j'affiche sur une page la liste des commandes effectuées avec le montant total pour chaque commande.
Comme certaines commandes ont plusieurs produits, je boucle (dans la boucle générant la liste des commandes) tous les produits de chaque commande.
Mon problème réside dans le calcul et surtout l'obtention du total pour chaque commande, sachant que pour chaque produit, je dois faire le calcul suivant; quantité*prix du produit.
Ainsi, ce que j'essaie de faire, c'est:

Code : Tout sélectionner

<début boucle des commandes> <début boucle des produits pour chaque commande> ss-total produit=prix*quantité </fin boucle produits> total des produits pour la commande </fin boucle des commandes>
Pour le moment, j'obtiens la bonne somme pour la première commande mais pour les sommes suivantes, elles reprennent les résultats des commandes précédentes.

Je vous donne le code que j'utilise:
while($row_commande=mysql_fetch_assoc($rs_commande)) { // boucle de chaque commande
						
						$query_montant="SELECT qte_produit, prix_produit, taux_tva FROM tbl_commande_produit, tbl_tva WHERE tbl_commande_produit.tva_produit=tbl_tva.id_tva AND commande_id='".$row_commande['id_commande']."'";
						$rs_montant=mysql_query($query_montant, $conn_panier) or die(mysql_error());
						
							while($row_montant=mysql_fetch_assoc($rs_montant)) { //boucle des produits de chaque commande
								$prix_article=$row_montant['prix_produit']*$row_montant['qte_produit']*(1+($row_montant['taux_tva']/100));
							$prix+=$prix_article;									
							}
						// j'affiche les éléments de chaque commande, commme la référence, la date, la personne, le total
						echo '
					<tr>
						<td class="titre3">&nbsp;</td>
						<td class="titre3" valign="middle">'.$row_commande['ref_commande'].'</td>
						<td class="titre3" valign="middle">'.$row_commande['date'].'</td>						
						<td class="titre3" valign="middle"><a href="adm-cd-client-fiche.php?client='.$row_commande['id_client'].'" title="voir la fiche du client">'.$row_commande['nom_client'].' '.$row_commande['prenom_client'].'</a></td>
						<td class="titre3" valign="middle" align="right" width="75">'.round($prix,2).' &euro;</td>
						<td class="titre3" valign="middle" width="25">&nbsp;</td>
						<td class="titre3" valign="middle">'.$row_commande['nom_statut'].'</td>
						<td class="titre3" valign="middle" align="center"><a href="adm-cd-commande-fiche.php?commande='.$row_commande['id_commande'].'" title="voir le détail de la commande">Voir &nbsp;<img class="img" src="img/administration/fleche-gris.jpg"/></a></td>
						<td class="titre3" valign="middle"><a href="adm-cd-commande-supprimer.php?commande='.$row_commande['id_commande'].'" title="supprimer la fiche du client">Supprimer &nbsp;<img class="img" src="img/administration/croix.jpg"/></a></td>
					</tr>
					';}
Merci par avance pour toute aide apportée.

Posté : 17 mars 2008, 19:41
par zeus
Si toutes les commandes reprennent le montant précédent, et que tu ne désires pas ce comportement, c'est qu'il faut que tu réinitialises le montant total de la commande au début de la boucle des commandes.

Code : Tout sélectionner

<début boucle des commandes> initialisation du total de la commande <début boucle des produits pour chaque commande> ss-total produit=prix*quantité </fin boucle produits> total des produits pour la commande </fin boucle des commandes>

Re: boucles + sommes de résultats

Posté : 17 mars 2008, 19:41
par Ryle
Pour le moment, j'obtiens la bonne somme pour la première commande mais pour les sommes suivantes, elles reprennent les résultats des commandes précédentes.
Peut être faudrait-il songer à remettre ta somme à 0 entre deux commandes ? ;)

Posté : 19 mars 2008, 11:20
par dread
Merci à vous deux pour vos réponses!

Comme toujours on peut compter sur vous pour élucider nos problèmes, aussi simples ou compliqués soient-ils.

Merci encore.

Bonne continuation à tout le monde...