Page 1 sur 1

requete sql dans mail()

Posté : 05 juil. 2005, 20:28
par line
bonjour,
j'ai un problème :
je souhaiterais récupérer le résultat d'une requete sql (qui marche):
<?$query="SELECT * FROM produit, marque, panier, ligne_panier, utilisateur
LEFT JOIN tarif ON (tarif.idproduit=ligne_panier.idproduit)
where panier.iduser='$iduser'
AND marque.idmarque=produit.idmarque
AND panier.idpanier='$idpanier'
AND utilisateur.iduser=panier.iduser
AND ligne_panier.idpanier=panier.idpanier
AND produit.idproduit=ligne_panier.idproduit
AND marque.idmarque='$idmarque'
AND tarif.idproduit IS NULL";
$resultat=mysql_query ($query);
while ($row=mysql_fetch_array ($resultat))	{ ?>
<tr><input type=hidden name=idligne_panier value=<? echo $row[idligne_panier] ;?>>
<input type=hidden name=idmarque value=<? echo $row[idmarque] ;?>>
<td class=zonetexte><font size=2><? echo "$row[ref] ";?></font></td>
<td class=zonetexte><font size=2>&nbsp;<? echo $row[nom];?></font></td>
<td class=zonetexte><font size=2><center><? echo $row[qte_ligpanier] ;?><center></font></td>
<td align=right class=zonetexte><font size=2><? echo $row[prixgd] ;?> €&nbsp;</td>
<td align=right class=zonetexte><font size=2><? $prixgd=$row[prixgd] ;?><? $qte_ligpanier=$row[qte_ligpanier] ;?>
<? $sstotal=$prixgd*$qte_ligpanier;?><? echo $sstotal;?> €&nbsp;</center></td>
		
	</tr>
<?}?>
et l'inserer dans le
...
$corps.='<center><table width=90% cellspacing="0" border="1" bordercolor="white" >';
$corps.='<tr><td width=15% class=zonetexte><font size=2><center>Reférence</center></td>';
$corps.='<td width=30% class=zonetexte><font size=2><center>Produit</center></td>';
$corps.='<td width=15% class=zonetexte><font size=2><center>Qte/Cde</center></td>';
$corps.='<td width=15% class=zonetexte><font size=2><center>Prix Unitaire</center></td>';
$corps.='<td width=15% class=zonetexte><font size=2><center>Total</center></td>';
$corps.='</tr>';
a cet endroit là

puis l'envoyer par
mail($destinataire,$sujet,$corps,$headers);
pouvez vous m'aider ?
merci

edit Mere Teresa : j'ai mis les trucs entre balises BBCode

Posté : 05 juil. 2005, 23:41
par pjl
3 remarques pour commencer :
- quand tu postes du code PHP, tu as un bouton PHP prévu afin de mettre le code en valeur et ca le rend beaucoup plus agréable à lire ;
- quand tu fais un requête, évite le SELECT * et précises les champs don tu as besoin, il est inutile de ramener des données en doubles (ou plus) exemplaires ;
- prends l'habitude d'utiliser le tag <?php à la place de <?. ca pourrait te poser des problèmes sur certains serveurs.

Posté : 06 juil. 2005, 09:53
par Invité
ok et merci pour ces infos mais ca ne répond pas à ma question...

Posté : 06 juil. 2005, 09:57
par ouckileou
tu devrais pouvoir t'en sortir seul, tu sais :

- exécuter une requête
- récupérer le résultat
- afficher ces résultats
- stocker du texte dans une variable
- concaténer des variables

toi ce que tu veux faire c'est : stocker des résultats dans une variable
c'est assez proche de ce que tu fais dans ton code non ?

Posté : 06 juil. 2005, 10:14
par Invité
ben pas tout à fait
car dans ma requete il y a un while qui me récupere plusieurs lignes de resultat...
et c'est le fait qu'il y ait plusieurs lignes qui me pose soucis
quand je n'ai qu'un resultat pas de problème mais là...

Posté : 06 juil. 2005, 10:25
par ouckileou
et bien où est le problème ? :)

tu concatènes à chaque tour de boucle tes données avec ce qui a été fait précédemment

exemple :
$corps = "Voici la liste de tous les clients :\n";

$req = "SELECT id, nom, prenom, adresse, telephone FROM clients ";
$exec = mysql_query($req);

while ($client = mysql_fetch_array($exec)) {
   $corps .= "\n\n------------------\n";
   $corps .= "Client n° ".$client["id"];
   $corps .= "\nNom : ".$client["nom"];
   $corps .= "\nPrénom : ".$client["prenom"];
   $corps .= "\nAdresse : ".$client["adresse"];
   $corps .= "\\nTéléphone : ".$client["telephone"];
}
$corps .= "\n\nFin de la liste des clients";

// enoi du mail
mail(...);

Posté : 06 juil. 2005, 11:33
par mere-teresa
- quand tu postes du code PHP, tu as un bouton PHP prévu afin de mettre le code en valeur et ca le rend beaucoup plus agréable à lire ;
Yo comme je suis sympa :)

Posté : 06 juil. 2005, 14:47
par Invité
merci à mammouth,
ça marche, j'avais fait une tentative de la sorte mais avec quelques problèmes de syntaxe

merci encore
line