begin process at 2012 05 29 00:22:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

comment calculer le total general des prix_totals


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

comment calculer le total general des prix_totals

vendredi 9 novembre 2007 à 10:28:10 | comment calculer le total general des prix_totals

hakiman

j'ai un table nommé bon_de_travaux il est comme ça:

<?php
 $hote = "localhost";
 $base = "adpub";
 $user = "root";
 $pass = "car";
 
 $cnx = mysql_connect($hote, $user, $pass)
  or die(mysql_error());
  
 $ret = mysql_select_db($base)
  or die(mysql_error());
  
  if(isset($_POST['insert']))
{
$a=$_POST['date'];
$b=$_POST['client'];
$c=$_POST['ign'];
$d=$_POST['qant'];
$e=$_POST['prix_vente'];
$f=$_POST['art'];
$g=$_POST['prix_total'];
$h=SUM('$e'*'$d');
$requet="INSERT INTO `bon_de_traveaux` ( `num_bon` , `date` , `client` , `article` , `designation` , `quantité` , `prix_vente` , `prix_total`,`total` )
VALUES ('', '$a', '$b', '$f' , '$c' , '$d' , '$e' ,'$d'*'$e',SUM(prix_total));
";
if($result=mysql_query($requet))
{
echo"<font size=+1 face=Tw Cen MT Condensed Extra Bold> Ajout réussi</font><br>";}
else echo"erreur";}
 ?> 
<body> 
<tr>
    <td width="826" height="918" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <!--DWLayoutTable-->
      <body>
   <table>
   <tr>
         <form method="post" action="bon_traveaux.php" enctype="multipart/form-data">
  <table width="700" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">
    <!--DWLayoutTable-->
  
                <tr>
                  <td height="22" colspan="5" align="center" valign="top" class="Style9"> <font face="Verdana, Arial, Helvetica, sans-serif"><strong>Bon
                 </strong></font> </td>
                <td width="39"></td>
                </tr>
                <tr>
                  <td width="111" height="19">&nbsp;</td>
                  <td width="228"></td>
                  <td width="42"></td>
                  <td width="100"></td>
                  <td width="180"></td>
                  <td></td>
                </tr>
               <td><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Date de commannde
                    :</strong></font></td>
                  <td colspan="2"><input name="date" type="text" id="date" ></td>
                </tr>
      <tr>
               <td><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Client
                    :</strong></font></td>
                  <td colspan="2"><input name="client" type="text" id="client" ></td>
                </tr>
    <tr>
               <td><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Articles
                    :</strong></font></td>
                  <td colspan="2"><input name="art" type="text" id="art" ></td>
                </tr>
      <tr>
                  <td height="70"><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Designation:</font></strong></td>
                  <td><textarea name="ign" id="ign"></textarea></td>
                  <td>&nbsp;</td>
                 
                </tr>
    <tr>
               <td><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Quantité
                   :</strong></font></td>
                  <td colspan="2"><input name="qant" type="text" id="qant" ></td>
                </tr>
    <tr>
               <td><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>prix du vente
                   :</strong></font></td>
                  <td colspan="2"><input name="prix_vente" type="text" id="prix_vente" ></td>
                </tr>
    <tr>
               <td><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>prix total                   :</strong></font></td>
                  <td colspan="2"><input name="prix_total" type="text" id="prix_total" ></td>
                </tr>
   
      <tr>
    <td>
      &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp <input name='insert'  type='submit' value='Ajouter' ></td>
      </tr> </table>
    <center><a href="/travail_hakima/adpub/bon.php">Bon du travaux</a>&nbsp&nbsp &nbsp&nbsp &nbsp &nbsp&nbsp&nbsp&nbsp;
<a href="/travail_hakima/adpub/accueil.php">accueil</a></center>
                
     
et voila son affichage

<form method="post" action="rech_bon.php" enctype="multipart/form-data">
<tr><td height="22"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>
                    entrer le nom du client souhaité :</strong></font></td>
                  <td><input name="for1" type="text"></td>
                  <td>&nbsp;</td>
      <td><input name="rech" type="submit" value="Rechercher"></td></tr>
      </form>
       <table>
       <body>
  <tr>
    <td width="826" height="918" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <!--DWLayoutTable-->
      <body>
 
   <tr>
         <form method="post" action="rech_bon.php" enctype="multipart/form-data">
  <table width="700" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">
    <!--DWLayoutTable-->
  
                <tr>
                  <td height="22" colspan="5" align="center" valign="top" class="Style9"> <font face="Verdana, Arial, Helvetica, sans-serif"><strong>Bon du travaux
                 </strong></font> </td>
             
<?php
 $hote = "localhost";
 $base = "adpub";
 $user = "root";
 $pass = "car";
 
 $cnx = mysql_connect($hote, $user, $pass)
  or die(mysql_error());
  
 $ret = mysql_select_db($base)
  or die(mysql_error());
  
  if(isset($_POST['rech'])){
  
  ?>
  
  <table border=3 bordercolor="black">
         <tr><th><td>numero de bon</td></th><th><td>Date </td></th><th><td>Nom client</td></th><th><td>Articles</td></th><th><td>Désignations</td></th><th><td>Quantité</td></th><th><td>prix de vente</td></th><th><td>Prix total</td></th><th><td> total</td></th></tr>
<?  
$for1=$_POST['for1'];
$requet=mysql_query("select * from bon_de_traveaux where client='$for1'");


while($result=mysql_fetch_array($requet))
{$total=0;
$a=$result['num_bon'];
$b=$result['date'];
$c=$result['client'];
$d=$result['article'];
$e=$result['designation'];
$f=$result['quantité'];
$g=$result['prix_vente'];
$h=$result['prix_total'];
 $i=SUM($result['prix_total'])
 ?> 
 
 

    <tr><th><td><?echo"$a";?></td></th><th><td><?echo"$b";?></td></th><th><td><?echo"$c";?></td><th><td><?echo"$d";?></td></th><th><td><?echo"$e";?></td><th></th><td><?echo"$f";?></td></th><th><td><?echo"$g";?></td></th><th><td><?echo"$h";?></td></th><th><td><?echo "$i";?></td></th></tr>
    <td>  <?}?>
                  
      </table><?}?>
    
     
     
      <tr><center><a href="/travail_hakima/adpub/bon.php">Bon du travaux</a>&nbsp&nbsp &nbsp&nbsp &nbsp &nbsp&nbsp&nbsp&nbsp;
<a href="/travail_hakima/adpub/accueil.php">accueil</a></center>

 <!-- DEBUT DU SCRIPT IMPRIMER-->
<p><input type="button" value="Imprimer cette page" onClick="window.print()"></p></tr>
<!-- FIN DU SCRIPT IMPRIMER-->

je veux afficher le total general des prix totals j'ai essaie avec la Fonction SUM() mais rien à afficher [ Lien ]

mardi 20 novembre 2007 à 15:57:59 | Re : comment calculer le total general des prix_totals

rethenor

Bonjour Kakiman,

Je ne suis pas sûr d'avoir parfaitement saisi la problématique qui est la tienne mais il me semble, à première vue qu'il y a une sérieuse erreur de conception de ta base de données.

1) il semblerait qu'il y ait redondance dans les données (articles, désignations, prix_vente)
2) on ne stocke jamais dans une base un résultat qui peut être calculé. On le calcule "à la volée".

A première vue, avec les infos que j'ai, je modéliserai ainsi :

Produits  ([num_article], designation, prix_vente)
Clients   ([num_client], nom, prenom, etc...)
Commander ([num_bon, num_client, num_article, date], quantité)

NB: Les champs entre crochets sont clefs-primaire.

Exemples:

PRODUITS:
153 | Chaussettes | 2.00
315 | Pantalon    | 15.50
287 | Chemises    | 14.80

CLIENTS:
1 | DUPONT | Jean ...
2 | DUVAL  | Paul ...
3 | MOREAU | Isabelle ...

COMMANDER:
12 | 2 | 153 | 2007-11-20 15:43:12 | 4
13 | 2 | 287 | 2007-11-20 15:43:12 | 2
14 | 2 | 315 | 2007-11-20 15:43:12 | 1
15 | 3 | 315 | 2007-11-20 16:34:27 | 1

avec:
$requete = "INSERT INTO Commander (num_client,num_article,`date`,quantite) VALUES ("
         . "'" . $_POST["num_client"]  . "','"
         . "'" . $_POST["num_article"] . "','"
         . "'" . date("Y-m-d H:i:s")   . "','"
         . "'" . $_POST["quantite"]    . "');";


Au moment d'afficher ou d'imprimer le bon de commande numéro 52 (par exemple):

===================================================
// ici, connexion à la base de données
$hote = "localhost";
$base = "adpub;
$user = "root";
$pass = "car";
$cnx = mysql_pconnect($hote, $user, $pass) or die(mysql_error());
$ret = mysql_select_db($base) or die(mysql_error());

// ici, requête et exécution
$total_commande = 0;
$requete = "SELECT Produits.*, Clients.*, Commander.*"
         . "  FROM Produits, Clients, Commander"
         . " WHERE Produits.num_article = Commander.num_article"
         . "   AND Clients.num_client = Commander.num_client"
         . "   AND Commander.num_non = 52;";
$resultat = mysql_query($requete,$cnx);

// Traitement 1ère ligne du résultat
$r = mysql_fetch_object($resultat);
echo "$r->nom $r->prenom (commande numéro $r->num_bon) :<br/>";
$total_article = $r->quantite * $r->prix_vente;
echo "$r->designation x $r->quantite = $total_article<br/>";
$total_commande += $total_article;

// traitement des autres lignes, s'il y en a
while($r = mysql_fetch_object($resultat)) {
 $total_article = $r->quantite * $r->prix_vente;
 echo "$r->designation x $r->quantite = $total_article<br/>";
 $total_commande += $total_article;
}

// affichage total commande
echo "TOTAL COMMANDE: $total_commande<br/>";
===================================================

T'auras toujours des problèmes en cas d'évolutoin des données (par ex changement de tarifs) si tu stockes dans ta base des calculs qu'on peut faire en consultant la base.

Je ne sais pas si ça réponds à ton besoin mais moi, je ferais comme ça...

Bon courage.



Cette discussion est classée dans : mysql, prix, total, result, nbsp


Répondre à ce message

Sujets en rapport avec ce message

probleme affichage image [ par zizou94 ] Bonjour à tousVoivi mon deuxieme souci du jour.J'ai un code ou il y a du javascript et du php mélanger. Ce code permet l affichage de l image au passa Select From where [ par DVTAZ ] Bonjour à toutes et à tousVoila, ne serait il pas possible de simplifier ce genre de code,(voir ci-dessous)je fait une requete avec un critere identiq je voudrais mettre des liens [ par Miss1 ] Miss1Bonjour j'ai Probleme de couleur [ par christuckers ] Bon ba re tout le monde !! Je ne sais pas si je m'adresse au bon endroit, mais comme je vois une différence entre IE 6.0 et Firefox 1.5.0 ...En dessou selectionner les enregistrements d'une base de données mysql [ par lucky82 ] svp aidez moi, j'ai beau essayé de trouver le pb de ce code php qui cherche à selectionner les enregistrements d'une table appelé 'groupe' , cette tab moteur recherche probléme n'affiche rien [ par speedylol ] bonjour voilà j'ai un moteur de recherche  il n' affiche rien, j'ai besoin d'une petite aide , pour resoudre ce probléme?? voici les code;require_once afficher à chaque fois dans un tableau [ par Miss1 ] Bonjour je voudrai afficher dans un tableau à chaque fois les infos suicantes.je veut qu'il se présene de cette facon mais je n'y arrive pas parceque Fonction mail [ par yoarf ] Bonjour,Je voudrais envoyer une newletter par paquets (adresse e-mail dans une table), en utilisant le champs CCI.Pouvez-vous me donner votre avis ? C prob pagination [ par soussan ] sltj'ai un rpob de pagination ; pour la premiere page tt marche bien mais pour la deuxième je suis bloqué ca donne pas la suite des enregistrement voi Fonction de consultation de base, pas de retour [ par kazaam ] Bonjourj'ai un soucis avec ma fonction, celle ci ne retourne rien, le parametre arrive bien (si je le met en return il passe) et j'obtient un resultat


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales