envois de résultat d'une requete

WRInaute occasionnel
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 !
 
WRInaute discret
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 ();
 
WRInaute accro
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.
 
WRInaute occasionnel
rajahshili a dit:
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 dit:
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+
 
WRInaute occasionnel
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:
$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
 
WRInaute accro
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.
 
WRInaute occasionnel
en fait j'ai trouvé un morceau de code parfait pour cela :
Code:
http://code.web-max.ca/misc_htmlemail.php
et puis le bout de code
Code:
    $message.="\n<ul><li>".$adslist['headline']."<ul><li>";
c'est un peu n'importe koi lol

Merci encore !
 
Discussions similaires
Haut