Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/07/2011, 15h23   #1
Invité de passage
 
steeff andrx
Inscription : octobre 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : steeff andrx

Informations forums :
Inscription : octobre 2010
Messages : 6
Points : 2
Points : 2
Par défaut Moyenne Pondéré CUMULE SQL

Bonjour , voici un echo de ma table sql :


Code :
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
49
50
51
52
53
54
55
<?php
	  connectMaBase();
            if(isset($_POST['accepter']))
{
          $sql = 'SELECT Date,Societe,Etat,PrixUnitaire,Quantite,Solde FROM `stockage` WHERE Produit="'.$produits.'"';
 
 
            $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());  
               $total=mysql_num_rows($req);         
   if($total) {
 
   echo'<table border="1" align="center" style="text-align: left; width: 674px; height: 88px;">'."\n";
   echo'<tr>';
   echo'<td bgcolor="#CCCCCC"><b>Date</b></td>';
   echo'<td bgcolor="#CCCCCC"><b>Société</b></td>';
   echo'<td bgcolor="#CCCCCC"><b>Etat</b></td>';
   echo'<td bgcolor="#CCCCCC"><b>PrixUnitaire</b></td>';
   echo'<td bgcolor="#CCCCCC"><b>Quantité</b></td>';
   echo'<td bgcolor="#CCCCCC"><b>Total</b></td>';
   echo'</tr>'."\n";
 
            while($data = mysql_fetch_array($req)){
 
	if($data['Etat']=="Vente")
{
			echo'<tr>';  
			echo'<td bgcolor="#669999"><span style="color: rgb(255, 255, 255);">'.$data['Date'].'</span></td>';     
			echo'<td bgcolor="#669999"><span style="color: rgb(255, 255, 255);">'.$data['Societe'].'</span></td>'; 
			echo'<td bgcolor="#669999"><span style="color: rgb(255, 255, 255);">'.$data['Etat'].'</span></td>';
			echo'<td bgcolor="#669999"><span style="color: rgb(255, 255, 255);">'.$data['PrixUnitaire'].'</span></td>'; 
			echo'<td bgcolor="#669999"><span style="color: rgb(255, 255, 255);">'.$data['Quantite'].'</span></td>';   
  			echo'<td bgcolor="#669999"><span style="color: rgb(255, 255, 255);">'.$data['Solde'].'</span></td>';
			echo'</tr>'."\n";
 
	}
	else
 
	{
			echo'<tr>'; 
            echo'<td bgcolor="#669999">'.$data['Date'].'</td>';     
			echo'<td bgcolor="#669999">'.$data['Societe'].'</td>'; 
			echo'<td bgcolor="#669999">'.$data['Etat'].'</td>';
			echo'<td bgcolor="#669999">'.$data['PrixUnitaire'].'</td>'; 
			echo'<td bgcolor="#669999">'.$data['Quantite'].'</td>';   
  			echo'<td bgcolor="#669999">'.$data['Solde'].'</td>';
			echo'</tr>'."\n";
            }
			}
			echo'</table>'."\n";
	}
            mysql_free_result ($req); 		
	          mysql_close ();     
	}	
 
        ?>
Le total de la Quantité est correcte (Achat-Vente)

Le total de la solde est :
Code :
$sql= 'SELECT SUM(Solde) as Solde FROM `stockage` WHERE Produit="'.$produits.'" && Etat="achat"';
Le boutton moyenne divise le total Solde / total Quantité ; mais cela reste une moyenne basique .

Le calcul que je voudrais faire est :

25-12=13 ;
13 x 52 500= 682 500;
2 x 50 000= 100 000;
13+2=15;
682 500+100 000=782 500;
782 500/15= 52 166;
____________________________________________

15-10=5;
30 x 55 500= 1 665 000;
1 665 000+52 166 = 1 717 166;
30 + 5=35;
1 717 166 / 35 = 49 061;

__________________________________________________

Est ce que quelqu'un pourrait me donner un petit coup de main merci .
miaouu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 16h00   #2
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Bonjour,

voila ce que je te propose:

Code :
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
	  connectMaBase();
            if(isset($_POST['accepter']))
{
          $sql = 'SELECT Date,Societe,Etat,PrixUnitaire,Quantite,Solde FROM `stockage` WHERE Produit="'.$produits.'"';
 
 
            $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());  
               $total=mysql_num_rows($req);         
   if($total) {
 
   echo'<table border="1" align="center" style="text-align: left; width: 674px; height: 88px;">'."\n";
   echo'<tr>';
   echo'<td bgcolor="#CCCCCC"><b>Date</b></td>';
   echo'<td bgcolor="#CCCCCC"><b>Société</b></td>';
   echo'<td bgcolor="#CCCCCC"><b>Etat</b></td>';
   echo'<td bgcolor="#CCCCCC"><b>PrixUnitaire</b></td>';
   echo'<td bgcolor="#CCCCCC"><b>Quantité</b></td>';
   echo'<td bgcolor="#CCCCCC"><b>Total</b></td>';
   echo'</tr>'."\n";
 
            while($data = mysql_fetch_array($req)){
 $operationCalcul=0;
 $operationCalcul1=0;
 $prixUni=0;
 $res1=0;
 $res2=0;
 $res3=0;
	if($data['Etat']=="Vente")
{
			$operationCalcul1=$operationCalcul-$data['Quantite'];
			$operationCalcul=0;
			if($res1==0)
				$res1=$operationCalcul1*$prixUni;
			echo'<tr>';  
			echo'<td bgcolor="#669999"><span style="color: rgb(255, 255, 255);">'.$data['Date'].'</span></td>';     
			echo'<td bgcolor="#669999"><span style="color: rgb(255, 255, 255);">'.$data['Societe'].'</span></td>'; 
			echo'<td bgcolor="#669999"><span style="color: rgb(255, 255, 255);">'.$data['Etat'].'</span></td>';
			echo'<td bgcolor="#669999"><span style="color: rgb(255, 255, 255);">'.$data['PrixUnitaire'].'</span></td>'; 
			echo'<td bgcolor="#669999"><span style="color: rgb(255, 255, 255);">'.$data['Quantite'].'</span></td>';   
  			echo'<td bgcolor="#669999"><span style="color: rgb(255, 255, 255);">'.$data['Solde'].'</span></td>';
			echo'</tr>'."\n";
 
	}
	else
 
	{
 
			$operationCalcul=$operationCalcul+$data['Quantite'];
			$prixUni=$data['PrixUnitaire'];
			if($res1>0)
			{
				$res2=$operationCalcul*$prixUni;
				$operationCalcul=$operationCalcul1+$operationCalcul;
				if($res3!=0)
				{
					$res3=$res3+$res2;
				}
				else 
				{
					$res3=$res1+$res2;
				}
 
				$res3=$res3/$operationCalcul;
 
			}
			echo'<tr>'; 
            echo'<td bgcolor="#669999">'.$data['Date'].'</td>';     
			echo'<td bgcolor="#669999">'.$data['Societe'].'</td>'; 
			echo'<td bgcolor="#669999">'.$data['Etat'].'</td>';
			echo'<td bgcolor="#669999">'.$data['PrixUnitaire'].'</td>'; 
			echo'<td bgcolor="#669999">'.$data['Quantite'].'</td>';   
  			echo'<td bgcolor="#669999">'.$data['Solde'].'</td>';
			echo'</tr>'."\n";
            }
			}
			echo'</table>'."\n";
	}
            mysql_free_result ($req); 		
	          mysql_close ();     
	}	
 
        ?>
Malheureusement je n'ai pas fait de test mais je pense, à 80%, que cela marche. (j'ai fait des tests à la main désolé )

PS: $res3 est le résultat final ^^
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/07/2011, 18h45   #3
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 711
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 711
Points : 328
Points : 328
Regarde ceci AVG(expr) MYSQL
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 07h45   #4
Invité de passage
 
steeff andrx
Inscription : octobre 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : steeff andrx

Informations forums :
Inscription : octobre 2010
Messages : 6
Points : 2
Points : 2
Par défaut Moyenne Pondéré CUMULE SQL

Bonjour et merci de m'avoir répondu , désolé j'ai oublié quelque chose dans

Code :
1
2
3
4
5
6
15-10=5;
52 166 x 5 = 260 830;
30 x 55 500= 1 665 000;
1 665 000+260 830= 1 925 830;
30 + 5=35;
1 925 830 / 35 = 55 023;
J'ai bien essayé Retrokiller069 mais la valeur $res3 donne toujours une valeur 0.
miaouu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 08h27   #5
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
Je suis en train de me pencher sur ton problème, tu veux faire quoi exactement, car les chiffres que tu donnes ne correspondent pas toujours à ton tableaux
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 10h13   #6
Invité de passage
 
steeff andrx
Inscription : octobre 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : steeff andrx

Informations forums :
Inscription : octobre 2010
Messages : 6
Points : 2
Points : 2
Par défaut Moyenne Pondéré CUMULE SQL

Je voulais just demander de l'aide et me guider un peu comment quelle methode je pourrais faire pour avoir le résultat qui est en rouge sachant que ma table sql est comme ça .
miaouu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 10h23   #7
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
Je veux dire par la, peux-tu expliquer à quoi correspondent les chiffre que tu avances (par exemple le 30+5).

Si je me souviens bien une moyenne pondérée est une moyenne qui tiens compte du poids (nombre de commande là) de chaque enregistrement, et en fesant cette moyenne, je trouve pas du tout les même résultat que toi.

Je suppose donc que je n'utilise pas les bonnes formules
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h18   #8
Invité de passage
 
steeff andrx
Inscription : octobre 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : steeff andrx

Informations forums :
Inscription : octobre 2010
Messages : 6
Points : 2
Points : 2
Par défaut Moyenne Pondéré CUMULE SQL

D'accord
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 25 nombre entrant 
//12 nombre sortant 
//13 nombre restant du produit
25-12=13 ;
 
// 52 500 prix unitaire du produit 
13 x 52 500= 682 500;
 
//Quand une meme produit arrive 
// 2 nombre nouveau produit
// 50 000 prix unitaire nouveau produit
2 x 50 000= 100 000;
 
//13 nombre restant
// 2 nombre nouveau produit
//15 nombre nouveau restant du produit
13+2=15;
 
//(prix unitaire1 x nbr1  + prix unitaire2 x nbr2)  / (dernier nbr produit restant)
682 500+100 000=782 500;
782 500/15= 52 166;
Je devrais faire un autre tableau pour faire tout ce calcul, qu'en pensez vous?
miaouu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h38   #9
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
Donc si je comprend bien dans le cas de ton tableaux tout en haut tu devrais faire ce calcul:

25*52500+2*50000+30*55500-(12*52500+2*50000)=2 347 500

puis divisé par le nombre de produit restant:

25+2+30-(12+2)=43
2347500/43=54593

c'est bien ça, car si il faut faire ça, c'est relativement simple à trouver
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h52.


 
 
 
 
Partenaires

Hébergement Web