Trata-se de uma especie de extrato que estou desenvolvendo.
Faços o select com creditos e débitos... Então faço o saldo anterior
E vou carregando o saldo até o final do laço.
Tá rolando certinho... Mas como o resultado vem paginado... preciso montar algum arrando onde o saldo inicial da pagina 2 seja o saldo da página 1. Por exempo: Suponha que o resultado do select deu 4 paginas com 20 registro cada... Então o saldo inicial da pagina 1 é “zero”.
Quando o usuário for para a pagina 2, o saldo inicial deve ser : 0,00 + o saldo total da pagina 1... Se a pagina 3 for acessada, o saldo inicial da página 3 tem que ser : 0,00 + Total Pg 1 + Total pg2... e assim por diante.
alguém teria alguma ideia de como coseguir isso??
Como a paginação utiliza o basicamente o parâmetro: “LIMIT $primeiro_registro, $num_por_pagina"
Existe alguma função nativa do PHP ou do SQL para tratar tal situação???
Segue código do extrato. Frizo que da forma que está a somatoria do saldo está correta. O problema é só como o saldo inicial de cada página da paginação.
Agradeço qualquer ajuda.
<table width="800" cellpadding="2" border="1" bgcolor="white">
<tr bgcolor="#475443">
<td align="center"> <h3><B> - </td>
<td align="center"> <h3><B> Data </td>
<td align="center"> <h3><B> Cliente </td>
<td align="center"> <h3><B> Motivo </td>
<td width='10' align="center"> <h3><B> St </td>
<td align="center"> <h3><B> Crédito </td>
<td align="center"> <h3><B> Débito </td>
<td align="center"> <h3><B> Saldo </td>
<td align="center"> <h3><B> Ações </td>
</tr>
<?php
$con = mysql_pconnect("$DBHost","$DBUser","$DBPass");
$num_por_pagina = 20;
$pagina = $_GET['pagina'];
if(!$pagina){
$primeiro_registro = 0;
$pagina = 1;
}else{
$primeiro_registro = ($pagina - 1) * $num_por_pagina;
}
$aux2 = explode('/',$obrigDataINI);
$dataINI_TRAT = $aux2[2]."-".$aux2[1]."-".$aux2[0];
$aux3 = explode('/',$obrigDataFIM);
$dataFIM_TRAT = $aux3[2]."-".$aux3[1]."-".$aux3[0];
if($obrigTipo==""){
$obrigTipo=1;
}
if($obrigApost==""){
$obrigApost=0;
}
$arrS = array ();
$n=0;
$i=0;
$sSaldoANT=0;
if($obrigApost==0){
$result = mysql("$DBName", "SELECT a.data,b.nome,a.historico,a.histCompl,a.Credito,a.Debito,a.status,a.idCC FROM tbContaCliente a, tbClientes b where (a.idCad=b.idcad) and a.data BETWEEN '$dataINI_TRAT' and '$dataFIM_TRAT' and a.lanc='$obrigTipo' ORDER BY a.data desc LIMIT $primeiro_registro, $num_por_pagina");
}else{
$result = mysql("$DBName", "SELECT a.data,b.nome,a.historico,a.histCompl,a.Credito,a.Debito,a.status,a.idCC FROM tbContaCliente a, tbClientes b where (a.idCad=b.idcad) and a.data BETWEEN '$dataINI_TRAT' and '$dataFIM_TRAT' and a.lanc='$obrigTipo' and a.idCad='$obrigApost' ORDER BY a.data desc LIMIT $primeiro_registro, $num_por_pagina");
}
?>
<tr>
<td colspan=7> </td>
<td align="center"><h2> <?=$sSaldoANT?></td>
<td align="center"> </td>
</tr>
<?
while($row = mysql_fetch_row($result)){
$Data = dataddmmaaaa($row[0]);
$Clie = $row[1];
$Hitorico = $row[2];
$compl = $row[3];
$Credito = $row[4];
$Debito = $row[5];
$status = $row[6];
$idLanc = $row[7];
if($Credito=="0"){
$Credito1="-";
}else{
$Credito1 = $Credito;
}
if($Debito=="0"){
$Debito1="-";
}else{
$Debito1 = $Debito;
}
///Soma saldo anterio com saldo atual///
if($n==0){
$SaldoATUAL = $Credito-$Debito;
array_push ($arrS,$SaldoATUAL);
}else{
$v = $Credito-$Debito;
$SaldoATUAL = $arrS[$i-1] + $v;
array_push ($arrS,$SaldoATUAL);
$SaldoATUAL = $arrS[$i];
}
?>
<tr>
<td align="center"> <input type="checkbox" onclick='contaLanc();' id='ckLanc' value='<?=$idLanc?>' name='<?=idLanc?>'> </td>
<td align="center"> <h2> <?=$Data?> </td>
<td align="center"> <h2> <?=$Apost?> </td>
<td align="left"> <h2> <?=$Hitorico?> <?=$compl?> </td>
<td align="center"> <h2> <?=$status?> </td>
<td align="center"> <h2> <?=$Credito1?> </td>
<td align="center"> <h2> <?=$Debito1?> </td>
<td align="center"> <h2> <?=$SaldoATUAL?></td>
<td align="center"> <a href="creditar.php?idLanc=<?=$idLanc?>"><img src="img/ico_editar.png" border="0" onmouseover="Tip('oEditar')" onmouseout="UnTip()"></a> <a href="#"><img src="img/ico_excluir.png" border="0" onmouseover="Tip('oExcluir')" onmouseout="UnTip()" onclick="ExcluirItem(<?=$idLanc?>,'<?=$Clie?>');"></a> </td>
</tr>
<?
$n=$n+1;
$i=$i+1;
};
echo "</table>";
//////////////////////////////////////////////
$consulta = "SELECT COUNT(*) FROM tbContaCliente a, tbClientes b where (a.idCad=b.idcad) and a.data BETWEEN '$dataINI_TRAT' and '$dataFIM_TRAT'";
list($total_usuarios) = mysql_fetch_array(mysql_query($consulta,$con));
$total_paginas = $total_usuarios/$num_por_pagina;
$prev = $pagina - 1;
$next = $pagina + 1;
// se página maior que 1 (um), então temos link para a página anterior
if ($pagina > 1) {
$prev_link = "<a href=\"$PHP_SELF?pagina=$prev&obrigDataINI=$obrigDataINI&obrigDataFIM=$obrigDataFIM\">Anterior</a>";
} else {
// senão não há link para a página anterior
$prev_link = "Anterior";
}
if ($total_paginas > $pagina) {
$next_link = "<a href=\"$PHP_SELF?pagina=$next&obrigDataINI=$obrigDataINI&obrigDataFIM=$obrigDataFIM\">Próxima";
} else {
$next_link = "Próxima";
}
$total_paginas = ceil($total_paginas);
$painel = "";
for ($x=1; $x<=$total_paginas; $x++) {
if ($x==$pagina) {
$painel .= " [$x] ";
} else {
$painel .= " <a href=\"$PHP_SELF?pagina=$x&obrigDataINI=$obrigDataINI&obrigDataFIM=$obrigDataFIM\">[$x]</a>";
}
}; ?>
<input type="hidden" name="SelLanc" size="10" value="">
</td>
</tr>
<tr>
<td align="center">
<table cellpadding="5" cellspacing="0" border="0" bgcolor="">
<tr height="40">
<td align="center"><a href="#" class="h2"> <h2><?php echo "$prev_link | $painel | $next_link"; ?></a></td>
</tr>
</table>
Pergunta
jgd
Gente!
Preciso de ajuda.
Trata-se de uma especie de extrato que estou desenvolvendo.
Faços o select com creditos e débitos... Então faço o saldo anterior
E vou carregando o saldo até o final do laço.
Tá rolando certinho... Mas como o resultado vem paginado... preciso montar algum arrando onde o saldo inicial da pagina 2 seja o saldo da página 1. Por exempo: Suponha que o resultado do select deu 4 paginas com 20 registro cada... Então o saldo inicial da pagina 1 é “zero”.
Quando o usuário for para a pagina 2, o saldo inicial deve ser : 0,00 + o saldo total da pagina 1... Se a pagina 3 for acessada, o saldo inicial da página 3 tem que ser : 0,00 + Total Pg 1 + Total pg2... e assim por diante.
alguém teria alguma ideia de como coseguir isso??
Como a paginação utiliza o basicamente o parâmetro: “LIMIT $primeiro_registro, $num_por_pagina"
Existe alguma função nativa do PHP ou do SQL para tratar tal situação???
Segue código do extrato. Frizo que da forma que está a somatoria do saldo está correta. O problema é só como o saldo inicial de cada página da paginação.
Agradeço qualquer ajuda.
Abs
jgd
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.