Donc voila, en cherchant sur le forum un script de newsletter avec une limit pour eviter les problèmes avec le seveur je suis tombé sur ce topic qui m'a plutot plus : ici
Seul problème j'ai appliqué ce code et modifié légerement pour qu'il puisse fonctionner pour moi.
Voila le resultat :
<?php
/********** CONSTANTES *********/
// Connexion au serveur
include 'connectbdd.php';
/*
* Nombre de mails par paquet
*/
define('MAILS_PAQUET', 4);
/*
* Pause entre chaque paquet
*/
define('PAUSE', 5);
/********** FIN CONSTANTES *********/
/*
* Fonction d'envoi des mails
* Reçoie en paramètre la requête, et la pause
* Construit les mail et les envoi
*/
function sendMail($qry, $pause){
$res = mysql_query($qry) or die('ERR_SQL :<br />' . $qry . '<br />' . mysql_error());
/*** Récupération des résultats ***/
while($mail = mysql_fetch_array($res)){
echo '<html>
<head>
</head>
<body>
<h1>TITRE</h1>
<p>paragraphe 01</p>
<p>paragraphe 02</p>
</body>
</html>';
}
if($pause){
sleep($pause);
}
}
/*
* Compter le nombre de mails à envoyer
*/
$qryNombre = "SELECT COUNT(mail) FROM newsletter";
$resultQryNbr = mysql_query($qryNombre) || die('ERR_SQL :<br />' . $qryNombre . '<br />' . mysql_error());
$nbrMails = mysql_result($resultQryNbr, 0, 0);
/*
* Nombre de boucles à faire
*/
$nbrBoucles = floor($nbrMails/MAILS_PAQUET);
echo 'Mails = ' . $nbrMails . ' Nombre boucles = ' . $nbrBoucles . '<br />'; // pour debugg
/*
* Nombre de mails restant après les boucles
*/
$mailsRestants = $nbrMails - $nbrBoucles * MAILS_PAQUET;
echo 'Reste = ' . $mailsRestants . '<br />'; // pour debugg
/*
* Requête générale
*/
$qryMails = "SELECT email FROM newsletter LIMIT ";
/*
* Boucle d'envoie par paquet
*/
for($i = 0; $i < $nbrBoucles; $i++){
// Construction de la requête en fonction du Nº de paquet
$qryBoucle = $qryMails . ($i * MAILS_PAQUET) . ', ' . MAILS_PAQUET;
echo '<h3>' . $qryBoucle . '</h3>'; // pour debugg
sendMail($qryBoucle, PAUSE);
}
/*
Construction de la requête pour les mails restant après le dernier paquet
*/
// Envoi seulemnt si il reste de mails
if($mailsRestants > 0){
$qryMailsRestants = $qryMails . ($i * MAILS_PAQUET) . ', ' . $mailsRestants;
echo '<h3>' . $qryMailsRestants . '</h3>'; // pour debugg
sendMail($qryMailsRestants, false);
}
?>
Et le probleme que j'ai :Il semblerait que sur le topic la personne avait le même probleme. Quelqu'un aurait une solution ?Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\wamp\www\site\admin\send_newsletter.php on line 45
Mails = Nombre boucles = 0
Reste = 0