Jump to content
Sign in to follow this  
kida

prob envoi mail avec listes produits commandés

Recommended Posts

Bonjour à tous,

Voici quelques heures que je bagarre avec ceci,

Je souhaite envoyer un mail de confirmation de commande (l'envoi fonctionne) avec la liste des produits commandés.

Mon problème est que, dans le corps de mon mail je dois envoyer plusieurs fois la ligne avec les infos produits. (je sors la liste de ma bdd selon num_commande)

J'ai essayé avec for et foreach mais marche pas.

Si une personne peut m'indiqué mon erreur je veut bien.

Merci d'avance :)

$sql2='Select num_cmd,produits,qte From Comand_detail Where num_cmd="'.$num.'"';
$req=mysql_query($sql2) or die ('Erreur SQL!'.$sql2.mysql_error());
while($list=mysql_fetch_array($req))
{
$prod=$list['produits'];
$qte=$list['qte'];
$query='Select id,nom,prix From produits Where id="'.$prod.'"';
$reponse=mysql_query($query) or die ('Erreur SQL!'.$query.mysql_error());
while($produit=mysql_fetch_array($reponse))
{
 $nom_prod=$produit['nom'];
 $prix=$produit['prix'];
 $prix_ligne=$qte*$prix;
}
}

Ligne du mail:

foreach($list as $produits)
{
$corps.="<tr><tdheight=15>".$nom_prod."</td><td>".$qte."</td><td>".$prix.
"</td><td>".number_format($prix_ligne,2,'.','')."</td></tr>";
}

Share this post


Link to post
Share on other sites

Bonjour,

La solution la plus simple sans trop bouger ton code pourrait être :

$i = 0;
while($produit=mysql_fetch_array($reponse))
{
$tableau[$i]['nom']=$produit['nom'];
$tableau[$i]['prix']=$produit['prix'];
$tableau[$i]['prix_ligne']=$qte*$prix;
}

puis

while(list(, $tab) = each($tableau)) {

$corps.="<tr><tdheight=15>".$tab['nom']."</td><td>".$qte."</td><td>".$tab['prix'].
"</td><td>".number_format($tab['prix_ligne'],2,'.','')."</td></tr>";
}

A tester... je ne suis pas sûr de moi :blush:

Share this post


Link to post
Share on other sites

$sql2='Select num_cmd,produits,qte From Comand_detail Where num_cmd="'.$num.'"';
$req=mysql_query($sql2) or die ('Erreur SQL!'.$sql2.mysql_error());
while($list=mysql_fetch_array($req))
{
$prod=$list['produits'];
$qte=$list['qte'];
$query='Select id,nom,prix From produits Where id="'.$prod.'"';
$reponse=mysql_query($query) or die ('Erreur SQL!'.$query.mysql_error());
while($produit=mysql_fetch_array($reponse))[/SQL]
{
 $nom_prod=$produit['nom'];
 $prix=$produit['prix'];
 $prix_ligne=$qte*$prix;
}
}

1. essaye de simplifier ta requete avec un truc du style ( un peu au pif, je connais pas la structure de tes tables

SELECT num_cmd, produits, qte, id, nom, prix
FROM produits INNER JOIN Command_detail ON produits.id = Command_detail.produits
WHERE num_cmd = $num

2. Dans ta boucle while, il me semble que tu écrase à chaque tout tes valeurs de noms, prix et qté. Donc tu ne peux pas les afficher

Share this post


Link to post
Share on other sites

Petite remarque :

avec ton code tu doit faire N+1 requêtes pour pouvoir afficher N lignes de produits.

Si tu fait un INNER JOIN entre tes deux tables tu vas faire une seule requête

On ne met jamais de requête dans une boucle

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...