Boucle de calcul

Mammouth du PHP | 686 Messages

02 nov. 2008, 22:04

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

02 nov. 2008, 23:40

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
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 686 Messages

03 nov. 2008, 00:02

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

03 nov. 2008, 00:38

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.
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 686 Messages

03 nov. 2008, 01:07

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;
            
            ?>