IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Calcul d'une somme [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut Calcul d'une somme
    Bonjour à tous,

    J'ai besoin d'un peu d'aide pour faire une somme en php.

    Voici une partie de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
      $prix_unit_HT= round(($data['PrixUnitaire'] * ($data['QteMoyen']) * ($data['QteColis']) * ($_SESSION['panier']['QteCommandee'][$i])), 2);
     
        echo "<tr></tr>";
        echo "<tr>";
    	echo "<td><font face='arial' size='2' color='#000066'>".htmlspecialchars($_SESSION['panier']['Reference'][$i])."</font></td>";
        echo "<td><font face='arial' size='2' color='#000066'>".$data['NomProduit']."</font></td>";
    	echo "<td align='center'><font face='arial' size='2' color='#000066'>× ".$data['QteColis']."</font></td>";
    	echo "<td align='center'><font face='arial' size='2' color='#000066'>".$data['QteMoyen']."</font></td>";
        echo "<td align='center'><font face='arial' size='2' color='#000066'><input type=\"text\" size=\"2\" name=\"QteCommandee[]\" value=\"".htmlspecialchars($_SESSION['panier']['QteCommandee'][$i])."\"/></font></td>";
        echo "<td align='right'><font face='arial' size='2' color='#000066'>".$data['PrixUnitaire']." € / ".$data['UniteVente']."</font></td>";
    	echo "<td align='right'><font face='arial' size='2' color='#000066'>$prix_unit_HT €</font></td>";
        echo "<td align='center'><a href=".htmlspecialchars("panier.php?action=suppression&r=".rawurlencode($_SESSION['panier']['Reference'][$i]))."><img src='/img/croix.jpg' border='0' /></a></td>";
        echo "</tr>";
       }
      }
     
     
     
     
      echo "<tr><td colspan=\"3\"> </td>";
      echo "<td colspan=\"1\" align='right'><font face='arial' size='3' color='#0066CC'><b>";
     
     Print_r ($_SESSION);
      echo "Total : ".number_format(MontantGlobal(),2)." €";
      echo "</b></font></td></tr>";
     
      echo "<tr><td colspan=\"2\">";
      echo "<input type=\"submit\" value=\"Rafraichir\"/>";
      echo "<input type=\"hidden\" name=\"action\" value=\"refresh\"/>";
      echo "</td></tr>";
    Et la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function MontantGlobal(){
    $total=0;
    for($i = 0; $i < count($_SESSION['panier']['Reference']); $i++)
    {
    $total += $data['QteColis'][$i] * $data['QteMoyen'][$i] * $data['PrixUnitaire'][$i] * $_SESSION['panier']['QteCommandee'][$i];
    }
    return $total;
    }
    Cela ne fonctionne pas.

    J'ai pensé autrement faire la somme de ma variable $prix_unit_HT mais je n'y arrive pas. J'ai tout le temps 0.00 €

    Merci pour votre aide.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    $data n'existe pas dans ta fonction.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut
    Citation Envoyé par sabotage Voir le message
    $data n'existe pas dans ta fonction.
    Re,

    Tu veux dire que je n'ai pas mis mes paramètres dans les paranthèses ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function MontantGlobal(ICI){

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu peux effectivement transmettre en paramètre.

    Au passage, par parcourir un tableau, utiliser foreach().
    Si tu dois vraiment utiliser une boucle for{}, fait le count() avant la boucle, sinon PHP recompte le tableau a chaque tour.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut Toujours le même problème !!!
    Après un peu d'arrêt, je reprend mon sujet toujours d'actualité.

    Toujours ce problème de somme que je n'arrive pas à résoudre :

    Code de ma page panier.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    if (creationPanier())
    {
    $nbArticles=count($_SESSION['panier']['Reference']);
      if ($nbArticles <= 0)
       echo "<tr><td><font face='arial' size='2' color='#000066'>Votre panier est vide </font></ td></tr>";
      else
      {
       for ($i=0 ;$i < $nbArticles ; $i++)
       {
     
    $prod="SELECT * FROM Produit WHERE Reference=".$_SESSION['panier']['Reference'][$i]."";
     
    $res_prod=mysql_query($prod)
         or die (mysql_error());
     
     while ($data = mysql_fetch_assoc($res_prod))
     { extract($data);
     
      $prix_unit_HT= round(($data['PrixUnitaire'] * ($data['QteMoyen']) * ($data['QteColis']) * ($_SESSION['panier']['QteCommandee'][$i])), 2);
     
        echo "<tr></tr>";
        echo "<tr>";
    	echo "<td><font face='arial' size='2' color='#000066'>".htmlspecialchars($_SESSION['panier']['Reference'][$i])."</font></td>";
        echo "<td><font face='arial' size='2' color='#000066'>".$data['NomProduit']."</font></td>";
    	echo "<td align='center'><font face='arial' size='2' color='#000066'>× ".$data['QteColis']."</font></td>";
    	echo "<td align='center'><font face='arial' size='2' color='#000066'>".$data['QteMoyen']."</font></td>";
        echo "<td align='center'><font face='arial' size='2' color='#000066'><input type=\"text\" size=\"2\" name=\"QteCommandee[]\" value=\"".htmlspecialchars($_SESSION['panier']['QteCommandee'][$i])."\"/></font></td>";
        echo "<td align='right'><font face='arial' size='2' color='#000066'>".$data['PrixUnitaire']." € / ".$data['UniteVente']."</font></td>";
    	echo "<td align='right'><font face='arial' size='2' color='#000066'>$prix_unit_HT €</font></td>";
        echo "<td align='center'><a href=".htmlspecialchars("panier.php?action=suppression&r=".rawurlencode($_SESSION['panier']['Reference'][$i]))."><img src='/img/croix.jpg' border='0' /></a></td>";
        echo "</tr>";
       }
      }
     
      echo "<tr><td colspan=\"3\"> </td>";
      echo "<td colspan=\"1\" align='right'><font face='arial' size='3' color='#0066CC'><b>";
     
      echo "Total : ".number_format(MontantGlobal($data),2)." €";
      echo "</b></font></td></tr>";
     
      echo "<tr><td colspan=\"2\">";
      echo "<input type=\"submit\" value=\"Rafraichir\"/>";
      echo "<input type=\"hidden\" name=\"action\" value=\"refresh\"/>";
      echo "</td></tr>";
     
    }
    }
    ?>
    Code de ma fonction MontantGlobal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function MontantGlobal($data){
     
    $total=0;
     
    for($i = 0; $i < count($_SESSION['panier']['Reference']); $i++)
    {
    $total += ($data['PrixUnitaire'] * ($data['QteMoyen']) * ($data['QteColis']) * ($_SESSION['panier']['QteCommandee'][$i]));
    }
    return $total;
    }
    Merci pour votre aide...

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    L'addition des montants doit evidemment être faite dans la boucle, pas en dehors.
    Tu peux d'ailleurs simplement reconditionner $prix_unit_HT que tu n'utilises pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $prix_unit_HT += round(($data['PrixUnitaire'] * ($data['QteMoyen']) * ($data['QteColis']) * ($_SESSION['panier']['QteCommandee'][$i])), 2);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#2.0] Calcul d'une somme MD5 en plusieurs fois
    Par mister3957 dans le forum C#
    Réponses: 2
    Dernier message: 06/01/2007, 09h16
  2. [Excel] Calcul d'une somme sous condition
    Par netsabes dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/08/2006, 16h09
  3. Calcul d'une somme dans Excel ??
    Par LaVaZza dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/06/2006, 22h55
  4. [TCP/IP][CRC] Calcul d'une somme XOR
    Par cyrdec dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 29/05/2006, 17h42
  5. access : calcul d'une somme de 0 sans valeur par défaut
    Par ericbelgium dans le forum Access
    Réponses: 6
    Dernier message: 06/10/2005, 09h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo