Vaya... tienes razón.
El LIMIT limita (valga la redundancia) el número de registros devuelto por la consulta, peor no limita los registros tomados por las funciones como SUM().
En este caso parece que lo que habrá que hacer es obtener el "id" del primer registro de cada página y repetir la consulta que te puse, sin el LIMIT y con un AND id<$primer_id.
En este caso no sé realmente si el id nos sirva, ya que estamos ordenando por timestamp. Voy a ponerte un ejemplo de cómo se haría con el timestamp. Pero si dos registros pudieran tener el mismo valor en este campo, elcódigo podría no funcionar correctamente.
Si el id de tus registros es entero auto-incremental y se corresponde en orden con el timestamp (o sea, si los orednas por id, también quedan ordenados por timestamp), mejor tomamos en lugar del timestamp, el id y se soluciona.
Código PHP:
// TODO LO ANTERIOR A ESTA LÍNEA PERMANECE IGUAL
$_pagi_sql = "SELECT trans_fee AS FEE,
timestamp AS DATETIME,
status AS STATUS
FROM transactions
WHERE timestamp >= $convert1
AND timestamp<=$convert2
AND trans_fee>0
ORDER BY timestamp DESC";
//Incluimos el script de paginación. Éste ya ejecuta la consulta
include("paginator.inc.php");
// Leemos el timestamp del primer registro
$row_suma = mysql_fetch_assoc($_pagi_result);
$timestamp_primer_registro = $row_suma['DATETIME'];
// resetaemos el resultset
mysql_data_seek($_pagi_result, 0);
// Vamos a calcular la variable $fee_acumulado.
//----------------------------------------------------------
if($_pagi_actual == 1){
// Si la página es la número 1, $fee_acumulado = 0.
$fee_acumulado = 0;
}else{
// Si la página no es la primera, hay que sumar los "fee" de los registros anteriores, $fee_acumulado = 0.
$sql_suma = "SELECT SUM(trans_fee) AS SUM_FEE
FROM transactions
WHERE timestamp >= $convert1
AND timestamp <= $convert2
AND trans_fee > 0
AND timestamp > '$timestamp_primer_registro'"; // Se suman desde el primer registro hasta el últimio de la página anterior
$result_suma = mysql_query($sql_suma) or die ("Error en la suma :: <b>$sql_suma</b> :: ".mysql_error());
$row_suma = mysql_fetch_assoc($result_suma);
$fee_acumulado = $row_suma['SUM_FEE'];
}
//---------------------------------------------------------
if ($row= mysql_fetch_array($_pagi_result)){
$fee = $row['FEE'];
$status = $row['STATUS'];
$i = 0;
$buffer = $fee_acumulado; // Aquí inicializamos el $buffer de manera distinta.
/* Impresion de resultados en HTML */
// TODO LO POSTERIOR A ESTA LÍNEA PERMANECE IGUAL
Saludos