probleme dans 2 boucles

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 : probleme dans 2 boucles

par Ryle » 19 mars 2009, 17:49

Quel est l'intérêt de faire deux requêtes et deux boucles ? surtout si la deuxième requête ne dépend pas des résultats de la première ??

Code : Tout sélectionner

SELECT t.nom AS client, p.nom AS produit, COUNT(p.id) AS nb FROM produit p, table t WHERE p.id_client = t.id AND t.date > '2008-01-01' GROUP BY client, produit
Cette requête va te donner pour chaque couple client/produit (GROUP BY) le nombre de fois où le produit a été acheté par le client... après tu peux exploiter et cumuler les résultats comme bon te semble :)

probleme dans 2 boucles

par hhpp » 19 mars 2009, 17:10

Bonjour
j'ai un probleme dans 2 boucles :

je recupere dans un table l'id du client avec son nom et ensuite je voudrais afficher le nombre de produit acheté par le client et le total du nombre de tous les produits par client

voici mon script :
$req="select id, nom from table where date >'2008-01-01' ";
if (!$res=mysql_query($req)) {print $req."<br>".mysql_error();}

		
		while ($row=mysql_fetch_array($res))
		{			
			$NBproduit=0; 
                       $id=stripslashes($row["id"]);
			$nom=stripslashes($row["nom"]);

                  $reqCOUNT="select COUNT(p.id) as nb, p.nom as pnom from produit p,table t where p.id_client=t.id";
$result = mysql_query($reqCOUNT) or die ('Erreur : '.mysql_error() );
  	   
 		  $COULEURtemp="#FFFFFF";
		  while($rowCOUNT = mysql_fetch_array($result)) 
			{
$NB=$rowCOUNT["nb"];
$NOMproduit=$rowCOUNT["pnom"];
$NBproduit+=$NB;
 }
}
le probleme c'est que $NBproduit va addtionner les nombres retournés donc ne correspond pas au total d'un produit acheté par exemple mais il fait le cumul
merci pour votre aide