Sommare iterazioni ciclo while

  • Creatore Discussione Creatore Discussione navajo75
  • Data di inizio Data di inizio

navajo75

Utente Attivo
16 Mar 2012
103
1
18
Salve a tutti,
ho una cosa di questo tipo:

PHP:
// nell' <head> ho un META che fa refreshare la pagina (<meta http-equiv="Refresh" content="5;url=news_prova.php"> )         
$query = mysql_query('SELECT * FROM prova WHERE email!=""');         
$nr_mail = mysql_num_rows($query);         
$query_uno = "SELECT * FROM prova WHERE inviato='no' AND email!='' LIMIT 0,5";         
$result = mysql_query ($query_uno, $conn) or die ("");         
$contatore=0;         
if($tot_contatore<=$nr_mail) {           
  while ($riga=mysql_fetch_row($result)){             
    // invio mail a blocchi di 5             
    $contatore=$contatore+1;           
  }         
} else {             
  // faccio altro           
  }

Supponendo di avere nel mio DB 50 indirizzi mail, il ciclo while si ripeterà per 10 volte ed in ognuna di queste occasioni ci saranno 5 iterazioni; dunque ad ogni uscita il totale del contatore sarà 5.
Io vorrei memorizzare questo totale e sommarlo ai successivi totali ogni volta che termina un ciclo while.
Ciò perchè così, fino a che questo totale continua ad essere inferiore al numero di mail, si esegue l'istruzione dell'IF, altrimenti si esegue quella dell'else.
 
non ti basterebbe aggiornare il campo inviato man mano che invii le mail ?
PHP:
<?php

// nell' <head> ho un META che fa refreshare la pagina (<meta http-equiv="Refresh" content="5;url=news_prova.php"> )         

$query_uno = "SELECT * FROM prova WHERE inviato='no' AND email!='' LIMIT 5";
$result = mysql_query($query_uno, $conn) or die("");
if (mysql_num_rows($result) > 0) {
    while ($riga = mysql_fetch_row($result)) {
        // invio mail a blocchi di 5
        // aggiornamento invio
        $query = "UPDATE prova SET inviato='si' WHERE email = '" . $riga['email'] . "'";
        // esegui
    }
} else {
    //fai altro
}
?>
 
In realtà lo aggiorno già, ma poi ho bisogno che mi torni su no.
Quindi nell'else c'è un redirect ad una pagina che tra le altre cose risetta il campo inviato a no.
 
Quindi ad ogni ciclo while tu invii 5 mail vero?
Ti basta fare un mysql_num_rows($result) e moltiplicarlo per 5.
Non ho capito perché deve tornare a 'no' il campo Inviato.
 
Supponiamo che il campo inviato non debba tornare a 'no', non capisco comunque come applicare la tua soluzione.
Potresti essere un pò più charo per cortesia?

Grazie,
Marco
 
Scusate, ma sono stato io a fissarmi stupidamente con l'idea che il campo inviato non potesse cambiare il suo valore di default.
In realtà la soluzione proposta da Ciric (COME SEMPRE DEL RESTO) andava più che bene.

Grazie a tutti e buona domenica,
Marco
 

Discussioni simili