Estoy paginando los resultados de una consulta sql con el Paginator de Jpinedo, y me funciona bién. La cuestión es que con los datos de la consulta voy haciendo una suma (son entradas y salidas de caja), pero en cada página me inicia la suma nuevamente.
Lo que pretendo es ir pasando el total página a página, y así en la última página tendré el total de todo.
Dejo el código:
Código PHP:
$_pagi_sql = "SELECT fecha, concepto, descripcion, numero_documento, entrada, salida, total FROM caja WHERE fecha BETWEEN '$desde' AND '$hasta' AND concepto<>'0' ORDER BY fecha ";
//Propagar variables
$_pagi_propagar = array("date","date2","concepto","suma","suma_ent","suma_sal");
include("includes/paginator.inc.php");
echo "
<tr>
<td><font size=3><b><u>FECHA</u></b></font></td>
<td><font size=3><b><u>CONCEPTO</u></b></font></td>
<td><font size=3><b><u>DESCRIPCIÓN</u></b></font></td>
<td style='text-align:right;'><font size=3><b><u>DOCUMENTO</u></b></font></td>
<td style='text-align:right;'><font size=3><b><u>ENTRADA</u></b></font></td>
<td style='text-align:right;'><font size=3><b><u>SALIDA</u></b></font></td>
<td style='text-align:right;'><font size=3><b><u>TOTAL</u></b></font></td>
</tr>
";
$suma = 0;
$suma_format = number_format($suma,2,",",".");
$suma_ent = 0;
$suma_ent_format = number_format($suma_ent,2,",",".");
$suma_sal = 0;
$suma_sal_format = number_format($suma_sal,2,",",".");
echo "<tr><td>----------</td><td>----------</td><td>----------</td><td style='text-align:right;'><font size=3><b>TOTAL:</b></font></td><td style='text-align:right;'><font size=3><b>$suma_ent_format</b></font></td><td style='text-align:right;'><font size=3><b>-$suma_sal_format</b></font></td><td style='text-align:right;'><font size=3><b>$suma_format</b></font></td></tr>";
while($row = mysql_fetch_array($_pagi_result)){
$fecaux = $row['fecha'];
$aux=explode("-",$fecaux);
$fec = $aux[2] . "/" . $aux[1] . "/" . $aux[0];
$con = $row['concepto'];
$sql3 = "SELECT nombre, numero FROM conceptos WHERE id_concepto='$con'";
$conn3 = mysql_query($sql3) or die(mysql_error());
$datos3 = mysql_fetch_array($conn3);
$nom_con = $datos3['nombre'];
$num_con = $datos3['numero'];
$des = $row['descripcion'];
$doc = $row['numero_documento'];
$ent = $row['entrada'];
$ent_format = number_format($ent,2,",",".");
if ($ent){
$suma = $suma + $ent;
$suma_ent = $suma_ent + $ent;
$suma_format = number_format($suma,2,",",".");
}
$suma_ent_format = number_format($suma_ent,2,",",".");
$sal = $row['salida'];
$sal_format = number_format($sal,2,",",".");
if ($sal){
$suma = $suma - $sal;
$suma_sal = $suma_sal + $sal;
$suma_format = number_format($suma,2,",",".");
}
$suma_sal_format = number_format($suma_sal,2,",",".");
$tot = $row['total'];//no s'utilitza
echo "
<tr><td>$fec</td><td>$num_con -- $nom_con</td><td>$des</td><td style='text-align:right;'>$doc</td><td style='text-align:right;'>$ent_format</td><td style='text-align:right;'>$sal_format</td><td style='text-align:right;'>$suma_format</td></tr>
";
}
echo "<tr><td>----------</td><td>----------</td><td>----------</td><td style='text-align:right;'><font size=3><b>TOTAL:</b></font></td><td style='text-align:right;'><font size=3><b>$suma_ent_format</b></font></td><td style='text-align:right;'><font size=3><b>-$suma_sal_format</b></font></td><td style='text-align:right;'><font size=3><b>$suma_format</b></font></td></tr>";
echo "<tr><td>----------</td><td>----------</td><td>-----------</td><td>----------</td><td>----------</td><td>----------</td><td>----------</td></tr>";
echo "<tr><td>----------</td><td>----------</td><td>-----------</td><td>----------</td><td>----------</td><td><b>TOTAL CAJA GENERAL:</b></td><td style='text-align:right;'><b>$total_caja_format</b></td></tr>";
echo"<p>".$_pagi_navegacion."</p>";
Es decir, pasar los valores $suma, $suma_ent, y $suma_sal página a página.
Muchas gracias por vuestra ayuda.