Calculs & SQL

Résolu
sbool Messages postés 115 Date d'inscription mercredi 27 août 2003 Statut Membre Dernière intervention 7 mars 2008 - 24 janv. 2008 à 03:01
sbool Messages postés 115 Date d'inscription mercredi 27 août 2003 Statut Membre Dernière intervention 7 mars 2008 - 24 janv. 2008 à 13:44
Bonjour, j'avoue que je patauge bien la, il faut absolument que j'arrive à calculer le total d'un champ avec PHP5&MySQL5.
J'affiche la table comme ca:
$query = "SELECT * FROM `2007` ORDER BY ".$tri." DESC";
$result = mysql_query($query) or die("Probleme contacter administrateur");

// Afficher des résultats en HTML
echo "\n\";
while ($line = mysql_fetch_assoc($result)) {
    echo \"\t----
\n\";
    foreach ($line as $col_value) {
        echo \"\t\t$col_value, \n\";
    }
    echo \"\t\n\";
}
echo "
\n";
...
$tri étant déjà paramétré avec code,entree,sortie,fournisseur,facture,designation,poid,pxachat,valeurstk...
Il faudrais qu'on puisse calculer la somme totale d'un champ (poid ou autre)

Merci de votre aide, coordialement, Alex.

3 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
24 janv. 2008 à 06:50
salut

t'as SUM et GROUP BY en mysql, j'imagine que c'est ce que tu cherches

SELECT SUN (champ) FROM table GROUP BY groupement

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
3
steb359842 Messages postés 69 Date d'inscription samedi 5 juin 2004 Statut Membre Dernière intervention 24 janvier 2008
24 janv. 2008 à 11:13
Il y a deux possibilités cas :
Soit tu voudrais trouver une somme pour toute une colonne
Soit tu as plusieurs élèments formants des petits groupe ou tu dois faire une somme d'un champ par groupe: ex. Tu as une liste d'objets vendus avec un prix pour chaque vente, et tu veux calculer la somme des ventes de chaque objets (dans la table tu as 3 vente de bananes, 2 de fraises et une de pommes (pas très exhaustif comme exemple je sais)
Et tu veux savoir combien t'a gagné par la vente de bananes, de fraises et de pommes.
Dans ce cas la requête serai :


SELECT fruit, SUM(prix) as TOTAL FROM ventes GROUP BY fruit


de plus si tu veux savoir combien de fruits on été compris dans le total :




SELECT fruit, SUM(prix) as TOTAL, COUNT(id) AS NBCOMMANDE FROM ventes GROUP BY fruit






et le php serait :

$query = mysql_query("
SELECT fruit, SUM(prix) as TOTAL, COUNT(id) AS NBCOMMANDE FROM ventes GROUP BY fruit"
);
print('
           ----

          Fruit |

          Nombre d'achats |

          Total |
      
');

while($produit = mysql_fetch_assoc($query))
{
    print('
       ----

          ' . $produit['fruit'] . ',

          ' . $produit['NBCOMMANDES'] . ',

         

' . $produit['TOTAL'] . '
,

      
    ');  
}

print('
');

Maintenant si ce n'est pas cela que tu désire mais un total pour toute une colonne sans groupe il te sufit de rajouter quelques lignes dans le php :

$query = "SELECT * FROM `2007` ORDER BY ".$tri." DESC";
$result = mysql_query($query) or die("Probleme contacter administrateur");

// Afficher des résultats en HTML
echo "\n\";

$total = 0;

while ($line = mysql_fetch_assoc($result)) {
    echo \"\t----
\n\";
    foreach ($line as $col_value) {
        echo \"\t\t$col_value, \n\";
    }
    $total += $line['prix'];
    echo \"\t\n\";
}
print('
    ----

       TOTAL :,
       ' .

$total

. ',
   
')

echo "
\n";




J'espère que cela aura répondu à ta question.



*°*°*°*°*°*°*°*°*°*°*°*
Marmotte Joyeuse
3
sbool Messages postés 115 Date d'inscription mercredi 27 août 2003 Statut Membre Dernière intervention 7 mars 2008
24 janv. 2008 à 13:44
Merci à vous deux.
Voici mon ptit bout de code qui tourne aintenant à merveille:

$sql = "SELECT SUM(poid) as TOTAL FROM `2007`";
$result = mysql_query($sql) or die("Probleme contacter administrateur");

echo "Total poid : \n\";
while ($line = mysql_fetch_assoc($result)) {
    echo \"\t----
\n\";
    foreach ($line as $col_value) {
        echo \"\t\t$col_value, \n\";
    }
    echo \"\t\n\";
}
echo "
\n";
0
Rejoignez-nous