faire un tableau type array et grouper

Eléphant du PHP | 75 Messages

23 mars 2010, 15:45

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))
	{ }
Modifié en dernier par tom_nameless le 23 mars 2010, 16:22, modifié 3 fois.

ViPHP
ViPHP | 5462 Messages

23 mars 2010, 15:51

t'as un exemple de liste ?

Eléphant du PHP | 75 Messages

23 mars 2010, 16:03

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...

...

Eléphant du PHP | 75 Messages

24 mars 2010, 19:52

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 />';
}