Ir para conteúdo
Fórum Script Brasil
  • 0

Paginação com Saldo em Extrato


jgd

Pergunta

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.

<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>&nbsp;</td>
          <td align="center"><h2> <?=$sSaldoANT?></td>
          
          <td align="center">&nbsp;</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>

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...