Buongiorno a tutti,
sto cercando d'implemetare uno script che mi permetta d'inviare mail a blocchi di 50, prelevando gli indirizzi da una tabella del mio DB.
In realtà lo script invia una sola mail e poi mi da il seguente errore:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource on line 1475
Alla linea 1475 corrisponde il seguente codice: if($contatore<=50 && $riga[2]=="no")
Per quel poco che capisco io, dunque è come se al secondo giro del ciclo while, la condizione if già noi sia più verificata; perchè?
Grazie a tutti,
Marco
sto cercando d'implemetare uno script che mi permetta d'inviare mail a blocchi di 50, prelevando gli indirizzi da una tabella del mio DB.
PHP:
$db_selection = mysql_select_db($nomedb, $nome) or die ("Selezione del database fallita<br><br>");
// la tabella prova contiene un campo (inviato) settato a no per default
$query = "SELECT * FROM prova";
$result = mysql_query ($query, $nome) or die ("");
$contatore=0;
while ($riga = mysql_fetch_row($result)) {
// ricavo l'id della tabella prova, contenente gli indirizzi dei miei iscritti
$id=$riga[0];
$inviato="si";
$contatore = $contatore + 1;
// la riga[2] corrisponde al campo inviato della tabella prova
if($contatore<=50 && $riga[2]=="no") {
$tipo_email = "MIME-Version: 1.0\nContent-type: text/html; charset=utf-8";
$oggetto = "E' solo una prova";
$destinatario = "[email protected]";
$headers = "From: io <[email protected]>\n$tipo_email";
$headers .= "\r\nBcc: $riga[1]\r\n\r\n";
$headers .= "\r\nX-Mailer: PHP/" . phpversion();
$messaggio = "
<html>
<body>
<table align=\"center\" width=\"600\" border=\"0\"bordercolor=\"#FF9900\">
<tr>
<td>
<a href=\"http://www.io.it/io/io\" title=\"Il portale per personalizzare gli strumenti per io\" target=\"_blank\">
<img src=\"http://127.0.0.1/altri/io/io/img/invio_news_img/pinguini.jpg\" border=\"0\"/>
</a>
</td>
</tr>
</table>
</body>
</html> ";
mail($destinatario, $oggetto, $messaggio, $headers);
echo "Email inviata a $riga[1]<br/><br/>";
// eseguo l'update della riga della tabella prova, in modo da far cambiare in si il valore del campo inviato
$query_uno = "UPDATE prova SET inviato='$inviato' WHERE id='$id'";
$result = mysql_query ($query_uno, $nome);
} else {
break;
}
}
echo "<br>Invio di <b>$contatore</b> email terminato con successo"; ?>
In realtà lo script invia una sola mail e poi mi da il seguente errore:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource on line 1475
Alla linea 1475 corrisponde il seguente codice: if($contatore<=50 && $riga[2]=="no")
Per quel poco che capisco io, dunque è come se al secondo giro del ciclo while, la condizione if già noi sia più verificata; perchè?
Grazie a tutti,
Marco