Page 1 sur 1

faire un tableau type array et grouper

Posté : 23 mars 2010, 15:45
par tom_nameless
Bonjour,

Je souhaite grouper des "id_produit" en fonction de "id_fournisseur" dans une sorte de tableau afin d'envoyer un mail par fournisseur avec la liste de ses produits...
Je ne sais pas si je suis assez clair !
dois je faire un tableau array ?
savez vous comment procéder ?

ci-dessous, récupération des id des produits sélectionnés avec des checkbox :
$cd2=$_REQUEST["cd"];
	$liste="";
	while(list($k,)=each($cd2)) {
	$liste.="'$k' ,";
	}
	$liste=substr($liste,0, -2);

	$sql = "SELECT * FROM tl_stock_article WHERE id IN ($liste)";
	$req = mysql_query($sql) or die('erreur sql!<br>'.$sql.'<br>'.mysql_error());
	while($data= mysql_fetch_assoc($req))
	{ }

Re: faire un tableau type array et grouper

Posté : 23 mars 2010, 15:51
par stealth35
t'as un exemple de liste ?

Re: faire un tableau type array et grouper

Posté : 23 mars 2010, 16:03
par tom_nameless
oui si tu veux mais je ne pense pas que ça va beaucoup t'aider..
je ne sais pas par quoi commencer et comment raisonner .. par fournisseur ou par produit ??

exemple :
mail 1 pour le fournisseur Pierre :
- produit 1 > ref > qte...
- produit 2 > ref > qte...
- produit 3 > ref > qte...

mail 2 pour le fournisseur Paul :
- produit 4 > ref > qte...
- produit 5 > ref > qte...
- produit 6 > ref > qte...
- produit 7 > ref > qte...

...

Re: faire un tableau type array et grouper

Posté : 24 mars 2010, 19:52
par tom_nameless
j'ai trouver une solution :
je vérifie si il existe une ligne avec l'Id en cours.. sinon j'en ajoute une...
$cd=$_REQUEST["cd"];
    $liste="";
    while(list($k,)=each($cd)) 
	{
    $liste.="'$k' ,";
    }
	$liste=substr($liste, 0, -2);

	$sql = "SELECT * FROM tl_stock_article WHERE id IN ($liste) ORDER BY id_fournisseur ASC";
	$req = mysql_query($sql) or die('erreur sql!<br>'.$sql.'<br>'.mysql_error());
	while($data= mysql_fetch_assoc($req))
	{
		if(!isset($id_four))
		{
		$id_four = $data["id_fournisseur"];
		$tab[$id_four] = array($data["id"]);
		}		
		else
		{
			if($id_four==$data["id_fournisseur"])
			{
			$tab[$id_four][] = $data["id"];
			}
			else
			{
			$id_four = $data["id_fournisseur"];
			$tab[$id_four] = array($data["id"]);
			}
		}
}
ensuite pour lire le tableau et envoyer un mail à chaque fournisseur :
foreach( $tab[$data5["id_fournisseur"]] as $v1) 
				{ echo 'variable : '.$v1.'<br />';
}