par
Ryle » 16 févr. 2007, 16:19
Première remarque, c'est que le $res=mysql_fetch_assoc() que tu fais juste après le select va lire et retirer le premier enregistrement ramené par le select. Il ne recevra donc pas de mail... S'il n'y a qu'un ami de trouvé dans ta base, cela expliquerait pourquoi aucun mail n'est envoyé.
Si tu lis le premier enregistrement (la moindre des choses serait déjà de vérifier s'il y en a bien un avec un if()) alors il faut en tenir compte dans ta boucle et au lieu de faire un while/do, la transformer en do/while pour qu'il rentre au moins une fois dedans avec l'enregistrement que tu as lu
Remarque n°2, lorsque tu utilises des nombres en SQL (genre un id), ne mets pas d'apostrophes autour. Elles sont réservées aux chaines (varchar, dates, text...). Tu obliges mysql a faire une conversion supplémentaire pour rectifier ton erreur (à noter que les autres bases de données ne le feront pas) :
'SELECT email,idmembre FROM membre WHERE mesmembre='.$idmembre.' ORDER BY RAND() LIMIT 4'
(pis ça allège l'ecriture et la lecture du code, autant en profiter

)
Récupère et affiche ou test la valeur retourné par la fonction mail() peut être y a t il une erreur à cet endroit là. Affiche également le mail du destinataire pour t'assurer que tu rentres bien dans le while et voir avec quelle valeur ...

Première remarque, c'est que le $res=mysql_fetch_assoc() que tu fais juste après le select va lire et retirer le premier enregistrement ramené par le select. Il ne recevra donc pas de mail... S'il n'y a qu'un ami de trouvé dans ta base, cela expliquerait pourquoi aucun mail n'est envoyé.
Si tu lis le premier enregistrement (la moindre des choses serait déjà de vérifier s'il y en a bien un avec un if()) alors il faut en tenir compte dans ta boucle et au lieu de faire un while/do, la transformer en do/while pour qu'il rentre au moins une fois dedans avec l'enregistrement que tu as lu :)
Remarque n°2, lorsque tu utilises des nombres en SQL (genre un id), ne mets pas d'apostrophes autour. Elles sont réservées aux chaines (varchar, dates, text...). Tu obliges mysql a faire une conversion supplémentaire pour rectifier ton erreur (à noter que les autres bases de données ne le feront pas) :
[php]'SELECT email,idmembre FROM membre WHERE mesmembre='.$idmembre.' ORDER BY RAND() LIMIT 4'[/php](pis ça allège l'ecriture et la lecture du code, autant en profiter :))
Récupère et affiche ou test la valeur retourné par la fonction mail() peut être y a t il une erreur à cet endroit là. Affiche également le mail du destinataire pour t'assurer que tu rentres bien dans le while et voir avec quelle valeur ... :)