Aide pour Boucle infini avec while

djimson Messages postés 217 Statut Membre -  
 Anonyme -
Bonjour, j'ai essayé un script d'envoi de mail groupé mais ca envoi le meme message au mois 10 fois.
Pourriez vous m'aider?
Voici le code :

<?php
$option= $_POST['option'];
/* Connexion au serveur */

include("connexion.php");
mysql_query ("INSERT INTO emplois VALUES
('','$option')");

$sql = ("Select `Adresse_Email`,`option` FROM Comptes_Utilisateurs c , emplois e WHERE c.`secteur`='". $_POST['option'] ."'; ");
echo "Envoi groupé <br>";

$req=mysql_query($sql);
$res=mysql_numrows($req);
$i=0;

$sujet = "Offre interessante";

$message = "Cette offre vs interesse :n";
while($i!=$res)
{
$email=mysql_result($req,$i,"Adresse_Email");

mail($email,$sujet,$message);

echo "Envoyé à ".$email." - ";
$i++;
}
?>

Comment faire pour que l'envoi soit unique?

2 réponses

julien
 
C'est simple, si tu regardes un minimum ton code tu te rends compte que dans ton while de trouve la fonction mail() qui envoit donc le mail. Par conséquent elle envoit le mail autant de fois que boucle le while.

while($i!=$res)
{
//tu concatènes toutes les adresses dans $email avec le .= en les séparant chacune d'une ,
$email.=".mysql_result($req,$i,"Adresse_Email").",";
$i++;
}

//ensuite tu envoi le mail
mail($email,$sujet,$message)
//Là ton echo va dire que ton mail est envoyé meme si la fonction plante et qu'il ne l'est pas donc c'est //assez moyen.
echo "Envoyé à ".$email." - ";
0
djimson
 
Salut Julien concretement je fais comment?
Car je comprend pas bien quand tu dit :
//Là ton echo va dire que ton mail est envoyé meme si la fonction plante et qu'il ne l'est pas donc c'est //assez moyen.
echo "Envoyé à ".$email." - ";

Merci de m'éclairer d'avantage
0
Anonyme
 
if(mail($email,$sujet,$message))
{
echo "Envoyé à ".$email.";
}
else echo 'erreur, mail non envoyé';
0