CIao a tutti, spero possiate essermi d'aiuto,

Lo script serve per inviare delle fatture commerciali tramite mail, siccome potrebbero essere un discreto numero per volta, ho pensato di fare un invio "paginato".

Partendo da un esempio di codice trovato qui su html.it e che utilizzo di solito per paginare i dati provenienti da mysql ho pensato qualcosa del genere:

(il codice è scorporato da cose inessenziali e commentato)

Codice PHP:
$numfatt $_GET['numfatt']; // questa variabile è passata via GET da un form e serve a far partire la numerazione delle fatture, andrà passata anche alle pagine successive
// esecuzione prima query
$count mysql_query("SELECT COUNT(ID) FROM transazioni WHERE fattura = 0");
$res_count mysql_fetch_row($count);
// numero totale di records
$tot_records $res_count[0];
// risultati per pagina(secondo parametro di LIMIT)
$per_page 3// questo valore è molto basso perchè per testare tutto ho solo 15 record in tabella, diciamo che va portato a 50
// numero totale di pagine
$tot_pages ceil($tot_records $per_page);
// pagina corrente
$current_page = (!$_GET['pagemail']) ? : (int)$_GET['pagemail'];
// primo parametro di LIMIT
$primo = ($current_page 1) * $per_page;
// esecuzione seconda query con LIMIT
$query_limit mysql_query("SELECT * FROM transazioni WHERE fattura = 0 LIMIT $primo$per_page");
// includo la classe per la stampa in PDF
(OMISSIS)
// includo la funzione per l' invio mail
// data da mettere in fattura
$data_odierna date('d M Y');

// INIZIO CON IL WHILE della query limitata
while($results mysql_fetch_array($query_limit)) {
// prelevo i dati che mi servono dalla query
(OMISSIS)
// creo il numero di fattura
$numero_da_stampare $numfatt 1;
    
// dalla spesa mi ricavo imponibile ed iva
(OMISSIS)

// includo la funzione di stampa della fattura
(OMISSIS)

// compongo la mail
(OMISSIS)

// invio la mail
SE LA MAIL NON VIENE INVIATA{
// non faccio niente
}ELSE{

FACCIO L' UPDATE DELLA TABELLA SCRIVENDO CHE LA FATTURA E' STATA INVIATA


}
// incremento il numero di fattura
$numero_da_stampare $numero_da_stampare 1;

// chiudo ciclo while che si dovrebbe essere ripetuto per $per_page volte ( in questo caso 3)

// al termine devo attendere 10 secondi e fare il redirect alla pagina successiva
if ($current_page != $tot_pages){
    
$next_page = ($current_page 1);
    
$qstring "?h=".$h."&ifatt=".$ifatt."&id=".$id."&pagemail=".$next_page."numfatt=".$numero_da_stampare// non tenere conto delle altre variabili passate via GET che servono ad altro ma solo di &numfatt=$numero_da_stampare
    
$redirect $_SERVER['PHP_SELF'].$qstring;
    echo 
$current_page."di".$tot_pages.
Attendi senza chiudere il browser!"
;
    
header("refresh:10;url=$redirect");    
}else{
// se invece la pagina è l'ultima
    
echo "Le fatture sono state inviate";

// faccio qualcosaltro

purtroppo non funziona: infatti al primo passaggio va tutto bene, al secondo la query dei risultati senza invio diminuisce e di conseguenza diminuisce anche il numero di paginazione... fattosta che i primi 3 li gestisce, i secondi no, i terzi si, i quarti no e così via. Altro problema è che $numero_da_stampare non viene incrementato

Fermo restando che è un papocchio, come si può portare al funzionamento? avete altri esempi da consultare?

VI ringrazio in anticipo