Boucle while et fonction mail

rems02 Messages postés 101 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 21 janvier 2008 - 18 sept. 2005 à 17:24
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 - 19 sept. 2005 à 14:25
J'ai une base de donnée dans la quelle je recupère des données suivantes

$piece

$annee

$observations

les variables $piece et $annee peuvent se repeter

par contre $observation est toujours differente



(on peut avoir plusieurs fois la même valeur par exemple

$piece = aa

$annee = 1900

$observations = mon observation 1

et

$piece = aa

$annee = 1900

$observations = mon observation 2 )



J'ai les recuperes avec le script suivant

...

$sql= "SELECT * FROM ".$tab." WHERE piece='$piece' and annee='$annee';";

$resultat = mysql_query ($sql);

while ( $arg = mysql_fetch_array ($resultat))

{

$piece = $arg['piece'];

$annee = $arg['annee'];

$observations = $arg['observations'];



//construction de message

$message= "construction de mon message\n";

$message.="pièce: $piece\n";

$message.="Année: $annee\n";

$message.="Observation: $observations";



//verification d'adresse mail - si bon envoi de message

if(eregi("((^[a-z])(([a-z0-9_]+)|(([a-z0-9_]+)[\.]([a-z0-9_]+)))[@]([a-z0-9]+)[\-]?([a-z0-9]+)[\.](([a-z]+)[\.]?([a-z]+)))",$mel))

{

if (mail ($mel,"Cotation de $piece $annee",$message))

{

echo "
";

echo "
 

 

 

";

echo "LA DEMANDE A ETE ENVOYEE PAR MAIL ";

}

else

{

echo "
Erreur lors de l'envoi";

}

}

else

{

echo "
";

echo "
 

 

 

";

echo "VOTRE E-MAIL EST INVALIDE !!!";

}



}



mysql_close();



dans le cas ou j'ai plusieurs valeur pour $piece et $annee seul les premiers de tableau

sont envoyé avec la fonction mail, pourquoi un deuxieme mail n'est pas envoyé

avec les seconde valeurs ?


Rem'S

6 réponses

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
18 sept. 2005 à 20:54
"
if(eregi("((^[a-z])(([a-z0-9_]+)|(([a-z0-9_]+)[\.]([a-z0-9_]+)))[@]([a-z0-9]+)[\-]?([a-z0-9]+)[\.](([a-z]+)[\.]?([a-z]+)))",$mel))"

Ca sort d'ou ca?
rems02 Messages postés 101 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 21 janvier 2008 3
18 sept. 2005 à 22:55
c'est juste une verification de la validité d'une adreese mail

ne t'occupe pas de ça car ça fonctionne nickel

c'est juste la boucle while qui est interampu avant la fin

mais la question estpourquoi ?

Rem'S
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
19 sept. 2005 à 00:11
"SELECT * FROM ".$tab." WHERE piece='$piece' and annee='$annee';"

Fait ca dans ton PHPMyAdmin par exemple, remplace les variables par
leurs correspondances, et regardes si t'as toutes tes lignes !
rems02 Messages postés 101 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 21 janvier 2008 3
19 sept. 2005 à 00:26
Danc MySQL ça marche nickel

j'ai toutes les lignes qui s'affichent

Rem'S

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
19 sept. 2005 à 12:32
Hello,



problème de conception de ta base, déjà.

Tu as des relations 1 -> n un peu partout.

Je veux bien que tu mettes années et pièce dans la même table, si tu y
tiens (même si j'aurais séparé, avec un id_couple), mais les
observations devraient être à part (et liées, dans mon cas, à
l'id_couple. Ainsi, tu n'aurais qu'à chercher toutes les observation
pour un id_couple donné).

Pour ton problème...d'où sort ton $tab ?
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
19 sept. 2005 à 14:25
Peut etre aussi parce que tu laisses pas le temps d'envoyer les mails.



Un petit sleep(1) peut aider de temps à autre.

Car fait des mails à tout va dans une boucle qui dure 1 microseconde, t'en fais pas des masses !
Rejoignez-nous