probleme dans 2 boucles

hhpp
Invité n'ayant pas de compte PHPfrance

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

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 :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...