Récupèrer données d'une requête et les envoyer par mail ???

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récupèrer données d'une requête et les envoyer par mail ???

par pierrecalligaro » 12 déc. 2005, 00:58

Merci Sébastien pour ton explication, si j'ai bien compris je récupère la concaténation de $nom.

par s3b54sk8 » 11 déc. 2005, 11:30

Merci Truc pour la correction :oops:

Sinon Pierre pour la petite explication.

Quand tu fais :
$nom = "<p><b>Nom: </b>{$nom_stag}</p>";
$nom = "<p><b>Nom: </b>{$nom_stag}</p>";
$nom = "<p><b>Nom: </b>{$nom_stag}</p>";
Soit ce qui était fait dans ton premier for(), la variable sera réécrite et ne gardera que la valeur de la dernière ligne (ton problème).

Maintenant si tu fais ca :
$nom .= "<p><b>Nom: </b>{$nom_stag}</p>"; // nom1
$nom .= "<p><b>Nom: </b>{$nom_stag}</p>"; // nom2
$nom .= "<p><b>Nom: </b>{$nom_stag}</p>"; // nom3


Ca reviend à avoir ca :
$nom = "<p><b>Nom: </b>{$nom_stag}</p> // nom1
<p><b>Nom: </b>{$nom_stag}</p> // nom2
<p><b>Nom: </b>{$nom_stag}</p>"; // nom 3
Enfin bon je suis pas trop doué pour les explications mais j'avais un lien ou c'était expliqué clairement mais pas moyen de remettre la main dessus... :?

par pierrecalligaro » 11 déc. 2005, 10:04

Super, je vous remercie, ça marche !!!
Je vous avourai que je n'ai pas tout compris à la méthode, je vais regarder ça de plus près.

Merci encore.

Pierre

par Truc » 11 déc. 2005, 00:41

Je sais pas si ca marchera mais essaye voir ca :
for($i=0;$i<$n1;$i++)
{
$nom_stag=mysql_result($rq1,$i,'Nom_stagiaire');
    $nom .= "<p><b>Nom: </b>{$nom_stag}</p>";
}

$message="<html><body><font face=arial size=2>".$nom."</font></body></html>";
sans oublier d'initialiser la variable $nom avant la boucle, puisqu'une concaténation est faite avec cette meme variable. Sans initialisation tu n'aura pas le résultat attendu puisque tu n'aura rien a concaténer la 1ere fois :wink:
$nom="";

par s3b54sk8 » 10 déc. 2005, 22:38

Je sais pas si ca marchera mais essaye voir ca :
for($i=0;$i<$n1;$i++)
{
$nom_stag=mysql_result($rq1,$i,'Nom_stagiaire');
    $nom .= "<p><b>Nom: </b>{$nom_stag}</p>";
}

$message="<html><body><font face=arial size=2>".$nom."</font></body></html>";

par pierrecalligaro » 10 déc. 2005, 21:34

le problème c'est que si par exemple la boucle me sort "banane" "poir" "orange" , je ne récupère que la valeur "orange" dans mon mail !! donc la dernière valeur de $message alors que je voudrai récupérer toutes les valeurs.
Si j'intégre dans ma boucle :
if (mail($email_webmaster, $subject, $message, $entete)){ ect.. 
je reçois autant de mail que de valeurs.

je vous remet mon script, car j'avais des erreurs:
<?php
$Num=$_SESSION['Nom'];

$r1="select * from clients where Nom='$Num'";
$rq1=mysql_query($r1);
$n1=mysql_num_rows($rq1);

for($i=0;$i<$n1;$i++)
{
$nom_stag=mysql_result($rq1,$i,'Nom_stagiaire');


$message="<html>
    <body>
            <font face=arial size=2>
            <p><b>Nom: </b>{$nom_stag}</p>
            </font>
    </body>
</html>";

}

$email_webmaster= "[email protected]";
$subject="pop";
$entete = "MIME-Version: 1.0\r\n";
$entete .= "content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "From: tutu.com\n";
if (@mail($email_webmaster, $subject, $message, $entete)){

etc...
?>

par pjl » 10 déc. 2005, 20:25

je ne comprends pas la question.

Qu'entends tu par extraire $ message puisqu'il est déjà dans la boucle ?

par pierrecalligaro » 10 déc. 2005, 20:05

oui mais comment mettre le message dans la boucle ?
c'est possible d'extraire $message ?
if (mail($email_webmaster, $subject, $message, $entete)){

?>
si oui comment fait on ?

par pjl » 10 déc. 2005, 19:19

mets ton message dans ta boucle.
Qu'est ce qui t'en empèche ?

Récupèrer données d'une requête et les envoyer par mail ???

par pierrecalligaro » 10 déc. 2005, 18:52

Bonjour à tous,
Je n’arrive pas à envoyer par mail toutes les données que je récupère dans ma boucle for. En fait je ne récupère que la dernière boucle.
Je comprends bien pourquoi je ne récupère que la dernière boucle mais je n’arrive pas à trouver la logique pour pouvoir tout récupérer. A mon avis il faut que je sorte tout dans un tableau(array), mais je ne vois pas comment faire !!

Voici mon code :
<?php
$Num=$_SESSION['Nom'];

$r1="select * from clients where Nom='$Num'";
$rq1=mysql_query($r1);
$n1=mysql_num_rows($rq1);

for($i=0;$i<$n1;$i++)
{
$nom_stag=mysql_result($rq1,$i,'Nom_stagiaire');


$message="<html>
    <body>
            <font face=arial size=2>
            <p><b>Nom: </b>{$nom_stag}</p>
            </font>
    </body>
</html>";

}
$mes=$message[$i];
$email_webmaster= "[email protected]";
$subject="pop";
$entete = "MIME-Version: 1.0\r\n";
$entete .= "content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "From: tutu.com\n";
if (@mail($email_webmaster, $subject, $mes, $entete)){

etc...
?>
meci d'avance pour votre aide.
Pierre