La somme de plusieurs lignes dans un tableau en php
nahac
Messages postés10Date d'inscriptionvendredi 17 juillet 2009StatutMembreDernière intervention26 février 2017
-
29 sept. 2010 à 09:18
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 2011
-
29 sept. 2010 à 13:41
Bonjour,
Je suis en train de realiser une facture qui contient plusieurs produits(nombre defini par le client )
A la fin je doit additionner la somme de toutes les lignes pour avoir le montant total de la facture en H.T.
Mais j'en ai aucune idée comment faire ça.
Pouvez vous m'aidez.
Merci d'avance.
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 29 sept. 2010 à 10:42
Salut,
Personnellement, j'aurais fait une addition...
On peut te proposer plusieurs manières de faire, mais si on ne sait pas à quoi ressemble ton code, on ne peut rien dire. On a besoin de savoir ce que tu fais des données, si tu les stockes, les traites, les affiches, comment tu fais ça : est-ce que tu parcours un tableau, une ressources, ets-ce que tu t'y prends autrement... ? Bref...
Y'a bien array_sum() mais je pense que ça ne conviendra pas à ce que tu veux faire.
--
Neige
Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 29 sept. 2010 à 13:41
C'est très difficilement lisible... La balise code est là justement pour que le code soit lisible, et elle n'est pas difficile à utiliser...
Ceci :
header('location:Ajouter_facture3.php');
n'est pas correct. Il FAUT écrire :
header('Location: Ajouter_facture3.php');
"Location" prend une majuscule : ce n'est pas facultatif, c'est un entête HTTP défini dans les standards et implémenté ainsi. Il faut aussi un espace après les deux points, idem, c'est défini ainsi dans les standards.
$rows = mysql_num_rows($Recordset1);
Tu as déjà calculé le nombre de lignes, que tu as stocké dans $totalRows_Recordset1. Là, en plus, tu recalcule cette valeur à chaque nouveau résultat (comme s'il risquait de changer pendant la lecture ?)
Bon. Pour répondre à ta question, puisque tu parcours des résultats qui contiennent entre autres informations, le prix, il te suffit de stocker les prix dans un tableau et d'utiliser array_sum() sur ce tableau, au moment de l'afficher.
Grosse erreur de conception qui entraîne des performances déplorables : utiliser une requête SELECT pour chaque produit... MySQL permet d'utiliser IN dans la clause WHERE... Je t'invite à aller jeter un oeil à la doc de MySQL, tu y trouveras des choses intéressantes (ça te permettra de ne faire qu'une requête pour sélectionner tous les produits d'une liste).
--
Neige
Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)