envois de résultat d'une requete

hanlin
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 300
Inscription: 23 Mar 2006

envois de résultat d'une requete

Message le Jeu Sep 24, 2009 22:05

Bonjour,
Jessaye d'envoyer par mail le résultat d'une requete, voici ce que je fais mais je ne reçois que le premier resultat à chaque fois :


function getads (){
$classifieds=mysql_query('SELECT * from matable');


while ($adslist=mysql_fetch_array($classifieds) ) {

$message=$adslist['ville'];



}

return $message;


}


$from="monmail@mail.com";
$to = "destinataire@mail.com";
$subject = "hi";
$body = getads ();


mail( $to, $subject, $body);


Pourriez vous m'aider s'il vous plait
Merci !


rajahshili
WRInaute discret
WRInaute discret
 
Messages: 143
Inscription: 22 Oct 2006

Re: envois de résultat d'une requete

Message le Jeu Sep 24, 2009 23:34

function getads (){
$classifieds=mysql_query('SELECT * from matable');


while ($adslist=mysql_fetch_array($classifieds) ) {

$message=$adslist['ville'];
$from="monmail@mail.com";
$to = "destinataire@mail.com";
$subject = "hi";
mail( $to, $subject, $body);


}

return $message;


}


$body = getads ();

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: envois de résultat d'une requete

Message le Ven Sep 25, 2009 0:21

Le code original remplace la valeur de $message par chaque valeur de ville successivement. Donc à la fin on n'a que la dernière reçue.

Le code proposé envoie un mail pour chaque ligne!

Moi je propose de remplacer (dans le code original) la ligne $message=$adslist['ville']; par $message.="\n".$adslist['ville'];

Jacques.


rajahshili
WRInaute discret
WRInaute discret
 
Messages: 143
Inscription: 22 Oct 2006

Re: envois de résultat d'une requete

Message le Ven Sep 25, 2009 0:44

oui je suis d'accord, s'il veut envoyer tout le résultat de la requête à un seul email.


Mountain Magazin
WRInaute impliqué
WRInaute impliqué
 
Messages: 598
Inscription: 1 Oct 2004

Re: envois de résultat d'une requete

Message le Ven Sep 25, 2009 0:47

rajahshili a écrit:function getads (){
$classifieds=mysql_query('SELECT * from matable');

while ($adslist=mysql_fetch_array($classifieds) ) {

$message=$adslist['ville'];
$from="monmail@mail.com";
$to = "destinataire@mail.com";
$subject = "hi";
mail( $to, $subject, $body);

}
return $message;
}

$body = getads ();


Effectivement, enverra un mail par ligne, ATTENTION

jcaron a écrit:Le code original remplace la valeur de $message par chaque valeur de ville successivement. Donc à la fin on n'a que la dernière reçue.
Moi je propose de remplacer (dans le code original) la ligne $message=$adslist['ville']; par $message.="\n".$adslist['ville'];
Jacques.


C'est effectivement la bonne solution, il faut concaténer les valeurs avec .=

Et si ce fichier se trouve lui même dans une boucle de niveau supérieur, il faut penser à détruire la variable $message avant chaque nouvelle itération => unset ( $message );

+A+

hanlin
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 300
Inscription: 23 Mar 2006

Re: envois de résultat d'une requete

Message le Ven Sep 25, 2009 9:05

Merci infiniment pour vos réponses, la solution : $message.="\n".$adslist['ville']; marche parfaitement.
Je voudrais ajouter du formatage (html) pour faire plus présentable) dans mon message...J'ai tenté

Code: Tout sélectionner
$message.="\n<ul><li>".$adslist['headline']."<ul><li>";


mais je reçois le code brute...ai je oublié un truc ?

Bonne journée à vous
Hanlin

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: envois de résultat d'une requete

Message le Ven Sep 25, 2009 9:57

Par défaut, un mail c'est du texte. Si tu veux envoyer du HTML, il faut changer le Content-Type de ton mail (text/html au lieu de text/plain), et de préférence faire deux version (une HTML, une texte) en multipart/alternative. Bref, tu vas avoir besoin d'utiliser autre chose que juste la fonction mail().

Jacques.

hanlin
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 300
Inscription: 23 Mar 2006

Re: envois de résultat d'une requete

Message le Ven Sep 25, 2009 10:04

en fait j'ai trouvé un morceau de code parfait pour cela :
Code: Tout sélectionner
http://code.web-max.ca/misc_htmlemail.php

et puis le bout de code
Code: Tout sélectionner
    $message.="\n<ul><li>".$adslist['headline']."<ul><li>";
c'est un peu n'importe koi lol

Merci encore !


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


cron