afficher les meilleures ventes en fonction des quantités

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : afficher les meilleures ventes en fonction des quantités

par dread » 11 avr. 2008, 11:09

D'accord d'accord!!

Je vois déjà ceux qui pensent que je n'ai pas essayer par moi-même. C'est de ma faute.

Pour le moment, j'arrive à ce résultat là (si je reprend mon exemple):

1 --> 15
2 --> 5
6 --> 7

sauf que je voudrais que le produit avec pour ref "6" passe devant celui ayant le "2" puisque les quantités vendues sont plus importantes.

Voici le code que j'utilise:

// requete me permettant de lister les produits vendues
$query_produit="SELECT DISTINCT(ref_produit) FROM tbl_commande_produit, tbl_commande WHERE tbl_commande.id_commande=tbl_commande_produit.commande_id AND statut_reglement=1";
$rs_produit=mysql_query($query_produit, $conn_panier) or die(mysql_error());



while($row_produit=mysql_fetch_assoc($rs_produit)) {

echo $row_produit['ref_produit'].': ';

                // requete me permettant de faire ressortir les quantités pour chaque produit de la liste
	$query_qte="SELECT qte_produit FROM tbl_commande_produit, tbl_commande WHERE tbl_commande.id_commande=tbl_commande_produit.commande_id AND statut_reglement=1 AND ref_produit='".$row_produit['ref_produit']."'";
	$rs_qte=mysql_query($query_qte, $conn_panier) or die(mysql_error());
	
	$qte=0;
	while($row_qte=mysql_fetch_assoc($rs_qte)) { 
		// je rajoute les quantités si un produit est présent plusieurs fois
                                $qte+=$row_qte['qte_produit'];									
	}
	echo $qte.'<br/>';
}
Comment faire alors pour ordonner mes résultats par quantité?

Merci.

[edit] Je viens de trouver. Merci pour la piste de SUM et GROUP BY. C'est exactement ce qu'il me fallait.

Pour ceux que ça interesserait:
$query_somme="SELECT ref_produit, SUM(qte_produit) as qte FROM tbl_commande_produit, tbl_commande WHERE tbl_commande.id_commande=tbl_commande_produit.commande_id AND statut_reglement=1 GROUP BY ref_produit ORDER BY qte ASC";
Et en plus on gagne en legereté de code.
[/edit]

Re: afficher les meilleures ventes en fonction des quantités

par pjl » 11 avr. 2008, 11:00

Imaginons ma table et les enregistrements suivants:
Et imaginons ton premier essai de requête, celà donne quoi ?

Allez déjà une piste, regarde du coté de SQL : SUM, GROUP BY

afficher les meilleures ventes en fonction des quantités

par dread » 11 avr. 2008, 10:39

Bonjour à tous!!

Je souhaiterai, dans le cadre d'une boutique en ligne, afficher le "top 10" des produits vendus.

Le tri porterait sans doute sur la quantité vendue par produit.

J'ai une table recapitulant les produits commandés avec leur quantité.

Comme je retrouve certains produits dans plusieurs commandes, il faut que j'additionne les quantités.

Le problème, c'est comment obtenir le résultat escompté.

Imaginons ma table et les enregistrements suivants:

ref produit --> qte commandée
1 --> 10
2 --> 5
6 --> 3
1 --> 5
6 --> 4

pour arriver à un classement de ces produits du type:

1 --> 15
6 --> 7
2 --> 5

J'espere me montrer assez clair et précis.

Merci par avance pour vos réponses.