Page 1 sur 1

Boucle de calcul

Posté : 02 nov. 2008, 22:04
par sylvaing26
J'ai un gros casse tête,
je souhaiterai effectuer une somme totale dans une table ou il y a un champ quantité et un champ prix unitaire. Mais avant de faire le total il faut multiplier par la quantité
qtité 1* prix1 + qtité2*prix2 pour apres avoir le resultat de la somme sur toute la table
je pense qu'il faut faire avec for mais je sais pas du tout comment m'y prendre

Posté : 02 nov. 2008, 23:40
par @rthur
Bonjour,

Donne nous comment sont organisées tes données et le code que tu as déjà si tu veux que l'on puisse t'aider efficacement

Posté : 03 nov. 2008, 00:02
par sylvaing26
en fait j'ai une base donnee ac les champs prix et quantité
dans ma page php je fait le calcul prix* quantité
pour avoir le total de tous mes enregistrements (prix*quantité) je suppose qu'il faut faire une boucle mais je ne sais pas comment faire
MYSQL_CONNECT($serveur,$utilisateur,$mdp) or die ("Connexion impossible");
    MYSQL_SELECT_DB($db) or die ("Connexion à la base $base impossible");
    $num = $_SESSION['commande']['id'][0];
    $sql2 = mysql_query("SELECT * FROM `$num` ORDER BY 'id' ASC");
    while($result=mysql_fetch_array($sql2)){
    $id = $result['id'];
    $ref = $result['ref'];
    $nom = $result['nom'];
    $quantite = $result['quantite'];
    $prix_unitaire = $result['prix'];
    $prix_point = str_replace(chr(44),chr(46),$prix_unitaire);
    $prix = $prix_point * $quantite;
    $prix = number_format($prix, 2, ',', ' ');
apres pour faire le total de tout ca je sais pas comment on fait

Posté : 03 nov. 2008, 00:38
par @rthur
Quelque chose dans ce gout là devrait le faire:
    $total=0; // on initialise le total
    while($result=mysql_fetch_array($sql2)){
    $id = $result['id'];
    $ref = $result['ref'];
    $nom = $result['nom'];
    $quantite = $result['quantite'];
    $prix_unitaire = $result['prix'];
    $prix_point = str_replace(chr(44),chr(46),$prix_unitaire);
    $prix = $prix_point * $quantite;
    $prix = number_format($prix, 2, ',', ' ');
    $total+=$prix;
}
J'utilise l'opérateur "+=" qui permet d'ajouter à la variable située à gauche de l'opérateur la valeur de la variable qui est à droite.

Posté : 03 nov. 2008, 01:07
par sylvaing26
Merci beaucoup c'été tout bête.
Le script fonctionnel est celui ci car il fait pas les calcul avec numberformat()
<?
    MYSQL_CONNECT($serveur,$utilisateur,$mdp) or die ("Connexion impossible");
    MYSQL_SELECT_DB($db) or die ("Connexion à la base $base impossible");
    $num = $_SESSION['commande']['id'][0];
    $sql2 = mysql_query("SELECT * FROM `$num` ORDER BY 'id' ASC");
    $total=0;
    while($result=mysql_fetch_array($sql2)){
    $id = $result['id'];
    $ref = $result['ref'];
    $nom = $result['nom'];
    $quantite = $result['quantite'];
    $prix_unitaire = $result['prix'];
    $prix_point = str_replace(chr(44),chr(46),$prix_unitaire);
    $prix = $prix_point * $quantite;
    $total=$prix + $total;
    $prix = number_format($prix, 2, ',', ' ');
    
    }
    $total = number_format($total, 2, ',', ' ');
    echo $total;
            
            ?>