Salve, rieccomi qui a rompervi le scatole... Sono alle prese con uno script per le newsletter e mi trovo a dover ricavare i dati da due tabelle: 1 in cui ci sono gli indirizzi email degli iscritti, l'altro dove sono contenuti gli aggiornamenti del sito.
Il codice che posto mi da due problemi:
1- quello più grave, probabilmente dovuto a un errato uso del while: in pratica le mail arrivano a tutti gli iscritti, solo che per ogni iscritto gli aggiornamenti raddoppiano! (per essere piu chiari: mail1:aggiornamento1 aggiornamento2 aggiornamento3; mail2:aggiornamento1 aggiornamento2 aggiornamento3 aggiornamento1 aggiornamento2 aggiornamento3; mail3:aggiornamento1 aggiornamento2 aggiornamento3 aggiornamento1 aggiornamento2 aggiornamento3 aggiornamento1 aggiornamento2 aggiornamento3, etc etc etc...);
2-il secondo problema è che quando eseguo la query mi da questo notice: "Notice: Undefined variable: mess in C:\xampp\htdocs\Sito2\contents\php\send2.php on line 54"
ecco il codice:
Codice PHP:
<?php
$serverdb='localhost';
$userdb='root';
$passdb='';
$db='test';
$table='news';
$link=mysql_connect("$serverdb","$userdb","$passdb")
or die ("Impossibile connettersi");
mysql_select_db($db,$link);
$isc=mysql_query("SELECT * FROM iscritti ORDER BY id ASC");
if (!$isc) {
exit ('
Errore mentre recuperavo i dati degli iscritti' . mysql_error() . '</p>');
}
if (mysql_num_rows($isc) == 0) {
?>
<script type='text/javascript'>window.location.href='../index.php';
</script>
<?php
}
else {
while ($cisc = mysql_fetch_array($isc)) {
$dest=$cisc['email'];
$sel=mysql_query("SELECT * FROM news
WHERE dataev <= DATE_ADD(CURDATE(), INTERVAL 100 DAY) AND CURDATE() <= dataev OR dataev=0 ORDER BY dataev ASC");
if (!$sel) {
exit ('
Errore mentre recuperavo i dati' . mysql_error() . '</p>');
}
if (mysql_num_rows($sel) == 0) {
?>
<script type='text/javascript'>window.location.href='../index.php';
</script>
<?php
} else {
while ($news=mysql_fetch_array($sel)){
$a=$news['data'];
$for1=explode(" ", $a);
$data=explode("-", $for1[0]);
$ora=explode("-", $for1[1]);
$b=$news['dataev'];
$for2=explode(" ", $b);
$data2=explode("-", $for2[0]);
$ora2=explode("-", $for2[1]);
$mess .= "Evento: ".$news['titolo']."\nData Evento: " .$data2[2]. "/" .$data2[1]. "/" .$data2[0]."\n".$news['art']."\nAggiornamento del ".$data[2]."/".$data[1]."/".$data[0]." alle ore ".$ora[0].".\n\n\n";
}
$ogg ='Associazione: Aggiornamenti mensili';
mail($dest, $ogg, $mess);
}
}
}
?>
Chi è cosi gentile da darmi una mano? Grazie mille!!!