PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 01-08-2012 11:18:49

loggo
Membre
Inscription : 01-08-2012
Messages : 3

Envoyer un resultat de requete Mysql par mail ??

Bonjour,

Je découvre ce forum et pleins de posts intéressants.
Malheureusement je ne trouve pas la solution à mon problème.
Je cherche à récupérer le résultat d'une requête Mysql sous forme de tableau et à l'envoyer par mail (dans le corps du message en format texte simple).

Voila ou j'en suis :


$q_oi = "SELECT * FROM #__{vm}_product, #__{vm}_order_item, #__{vm}_orders ";
$q_oi .= "WHERE #__{vm}_product.product_id=#__{vm}_order_item.product_id ";
$q_oi .= "AND #__{vm}_order_item.order_id='$order_id' ";
$q_oi .= "AND #__{vm}_orders.order_id=#__{vm}_order_item.order_id";
$dbt = mysql_query($q_oi);

$messag=array();
$i=0;
while($row=mysql_fetch_array($dbt))
{
$messag[$i]["product_sku"]=$row["product_sku"];
$messag[$i]["product_name"]=$row["product_name"];
$messag[$i]["product_quantity"]=$row["product_quantity"];
$i++;
}
$sujet = "blabla";
vmMail( $from, $contact, $sujet , $messag, '' ); 
 

Je précise que ma requête fonctionne très bien et que je reçoit les mails (mais sans rien !!!)....et que je débute en php/mysql (ça c'etait évident !!!)

Merci par avance pour vos suggestions.

Hors ligne

#2 01-08-2012 11:26:48

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Envoyer un resultat de requete Mysql par mail ??

Bonjour,

Sans voir le contenu de votre fonction vmMail, difficile de se prononcer. De plus votre message n'est pas vraiment un message au sens littéral du terme car vous passer un tableau de valeurs.

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#3 01-08-2012 11:38:51

loggo
Membre
Inscription : 01-08-2012
Messages : 3

Re : Envoyer un resultat de requete Mysql par mail ??

Bonjour et Merci pour cette réponse TRÈS rapide.
La fonction vmMail n'est pas vraiment le problème (du moins à mon avis), il faut que le contenu du message, en l’occurrence mon tableau, soit dans la variable $messag.
Tableau ou pas, ce que je cherche c'est d'avoir le résultat de ma requête sous cette forme dans le corps du message:
ref1,nom1,qte1
ref2,nom2,qte2
ref3,nom3,qte3
.....
Après, j'avoue ne pas bien saisir vraiment le "mysql_fetch_array"? faut-il mieux passer par "mysql_fetch_object" ou pas? ou autre chose? et si oui comment ??

Hors ligne

#4 01-08-2012 13:16:46

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Envoyer un resultat de requete Mysql par mail ??

La fonction vmMail n'est pas vraiment le problème

L'essentiel c'est d'en être persuadé^^. Après, et jusqu'à preuve du contraire, un message, sémantiquement parlant est représenté par une chaîne de caractères. D'ailleurs la représentation des résultats de votre requête que vous espérez obtenir en est une belle illustration. Par conséquent si votre fonction vmMail n'est pas capable de transformer votre tableau de valeur en une chaîne de caractères, il est tout à fait normal qu'aucun message ne soit transmis par mail.


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#5 01-08-2012 20:10:19

loggo
Membre
Inscription : 01-08-2012
Messages : 3

Re : Envoyer un resultat de requete Mysql par mail ??

A force...on y arrive toujours.
J'ai donc regle mon problème avec une simple boucle while...
ça donne ça :


$dbmail =new ps_DB;
$req = "SELECT product_name,product_sku,product_quantity FROM #__{vm}_product,#__{vm}_order_item WHERE #__{vm}_order_item.product_id = #__{vm}_product.product_id AND #__{vm}_order_item.order_id='" . $order_id . "' ORDER BY product_sku ASC";
$dbmail->query($req);
while ($dbmail->next_record())
{
$mailtxt.= $dbmail->f("product_sku"). "; ".$dbmail->f("product_name"). "; ".$dbmail->f("product_quantity")."\n";
      }
$sujet = "blabla" . $order_id;
vmMail( $from, "blabla", $contact, $sujet , $mailtxt, '' );
 

.
Et en plus ça marche.
Merci  à Jc qui m'a "ouvert" l'esprit.

Hors ligne

Pied de page des forums