Ir para conteúdo
son goku

Paginação utilizando switch

Recommended Posts

Boa tarde pessoal.

Estou com o seguinte problema:

ao clicar no numero da paginação,ela não exibe os dados,vou postar o código abaixo para voçês,verem.
Quem poder me ajudar:

<?php
session_start();
if (!isset($_SESSION["id"]) || !isset($_SESSION["nome"])){
    echo "Você não fez o login no sistema.";
}

?>

<html>
<head>
<title>Tipo de consulta</title>
</head>

<body>

<table border="1">

<tr>
<td>Descrição:</td> 
<td>Forma de pagamento:</td>
<td>Valor da parcela: </td>
<td>Quantidade de parcelas:</td>
<td>Numero da parcela:</td>
<td>Pago:</td>
<td>Cartão:</td>
<td>Numero do cart&atildeo:</td>
<td>Data de vencimento:</td>
</tr>


<?php

include "conecta_banco.php";

$idusu = $_SESSION["id"];
$consulta =  isset( $_POST["tipo_consulta"] ) ? $_POST["tipo_consulta"] : null;

switch ($consulta){
    
    case "exibe_tudo": 
    
        $pagina = (isset($_GET['pagina']))? $_GET['pagina'] : 1;
        
        //seleciona todos os itens da tabela
        $sent_sql = "SELECT * FROM gastos";
        $result = mysql_query($sent_sql);
        
        //conta o total de itens
        $total = mysql_num_rows($result);
        
        //seta a quantidade de itens por página, neste caso, 2 itens
        $registros = 20;
        
        //calcula o número de páginas arredondando o resultado para cima
        $numPaginas = ceil($total/$registros);
        
        //variavel para calcular o início da visualização com base na página atual
        $inicio = ($registros*$pagina)-$registros;
        
        //seleciona os itens por página
        $sent_sql = "SELECT * FROM gastos LIMIT $inicio,$registros";
        $result = mysql_query($sent_sql);
        $total = mysql_num_rows($result);
        
        
         
        while($tbl = mysql_fetch_array($result))
        {            
            $descricao = $tbl["descricao_gasto"];
            $formapagamento = $tbl["moeda"];
            $valor = $tbl["valor_gasto"];
            $quantidade = $tbl["quant_parcela"];
            $numerodaparcela = $tbl["num_parcela"];
            $tapago = $tbl["pago"];
            $cartao = $tbl["cartao"];
            $numcartao= $tbl["num_cartao"];
            $datavencimento = $tbl["data_venc"];                                             
           
            

            
            /* Aqui converto a data que vem do mysql no formato y/m/d
             * para d/m/y */
            
            $datavencimentoconv = date("d/m/Y",strtotime($datavencimento));  
            
            

            echo "<tr>";
            echo "<td>$descricao </td>";
            echo "<td>$formapagamento </td>";
            echo "<td>R$ $valor </td>";
            echo "<td>$quantidade </td>";
            echo "<td>$numerodaparcela</td>";
            echo "<td>$tapago</td>";
            echo "<td>$cartao </td>";
            echo "<td>$numcartao </td>";
            echo "<td>$datavencimentoconv </td>";
            echo "</tr>";
            
        }         
        
        
        $sent_sql2 = "SELECT sum(valor_gasto) FROM gastos WHERE usu_id='$idusu'";
        $result2 = mysql_query($sent_sql2);
        
        while($sum = mysql_fetch_array($result2)){
            $soma = $sum['sum(valor_gasto)'];
            
            echo "<tr>";
            echo "<td>Total: </td>";
            echo "<td>R$ $soma</td>";
            echo "</tr>";
              

        }
        
        //exibe a paginação
        for($i = 1; $i < $numPaginas + 1; $i++) {
            echo "<a href='tipoconsulta.php?pagina=$i'>".$i."</a> ";

        } 
        
      break;

}


 
?>

</table>

</body>

</html>

Acredito que seja algo,simpless porém já estou a um bom tempo quebrando a cabeça com isso.

Editado por Gabriel Heming
formatação de código

Compartilhar este post


Link para o post
Compartilhar em outros sites

Além do que já foi mencionado, se você não for editar dados ou modificar recursos, use GET ao invés de POST.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde pessoal.

Agradeço a ygor.anjos e Gabriel Heming,pela atenção em me ajudar a resolver o problema.

Consegui resolver da seguinte maneira:

Lá em cima no codigo,depois da declaração da variavel $consulta,adicionei as seguintes linhas:

 

if (@$_POST["tipo_consulta"] != "")
{
   $consulta= $_SESSION["tipo_consulta"] = $_POST["tipo_consulta"];

}
Ai funcionou,agora ele passa pra proxima página.Sou iniciante no PHP ainda.
É isso ai,obrigado e até a proxima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera perdão.

Depois que limpei o historico do meu navegador,começou a dar erro de novo.
Vi que o ygor.anjos disse que eu tinha que mandar o POST novamente com o campo "tipo_consulta".

Como faço isso?

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por kerven
      eae pessoal
      queria um javascript para associar a um botão.
      seria para usar em botoes de próximo e anterior, esse script tem que levar a uma pagina html q está na pasta do html atual
      as paginas são numeradas, por exemplo: 0.html, 1.html, 2.html, 3html...
       
      eu queria uma variável, que quando estivesse, por exemplo na numero 2.html, o botao "anterior" vá para a 1.html e o botao " próximo" vá para 3.html, 
       
      algo do tipo 
       
       Anterior= valor da pagina atual.html - valor da pagina atual -1.html e redirecionar para ela
      proximo= valor da pagina atual.html + valor da pagina atual + 1.html e redirecionar para ela
       
    • Por Maykel dos Santos Figueire
      Alguém por favor pode me ajudar, a paginação não funciona!
      <?php include 'configs/conecta.php'; $logado = $_SESSION['usuario']; $consultaSection = "SELECT * FROM motoristas WHERE id_logado = '$logado'"; $execSection = mysqli_query($conexao,$consultaSection) or die(error); ?> <div class="section">     <table>         <tr>             <td class="m">Matricula</td>             <td class="n">Nome</td>             <td class="c">CPF</td>             <td class="g">Ganhos</td>         </tr>         <?php             $pagina = (isset($_GET['pagina']))? $_GET['pagina'] : 1;              $banco = mysqli_query($conexao, "SELECT `id`, `nome`, `cpf`, `ganhos` FROM motoristas");             $total = mysqli_num_rows($banco);              $registros = 4;             $numPaginas = ceil($total/$registros);             $inicio = ($registros*$pagina)-$registros;              $banco = mysqli_query($conexao, "SELECT `id`, `nome`, `cpf`, `ganhos` FROM motoristas LIMIT $inicio,$registros");              $total = mysqli_num_rows($banco);             ?>          <?php while($exibe_pecas = mysqli_fetch_array($banco)) {?>             <?php while($logado = mysqli_fetch_array($execSection)) { ?>                          <tr>                 <td class="m"><?php echo $logado["id"];?></td>                 <td class="n"><?php echo $logado["nome"];?></td>                 <td class="c"><?php echo $logado['cpf'];?></td>                 <td class="g"><?php echo round($logado['ganhos'], 2);?></td>             </tr>             <?php } ?>         <?php } ?>         <?php             if($pagina > 1) {                 echo "<a href='painel.php?pagina=".($pagina - 1)."' class='controle'>&laquo; anterior</a>";             }             for($i = 1; $i < $numPaginas; $i++) {                 $ativo = ($i == $pagina) ? 'numativo' : '';                 echo "<a href='painel.php?pagina=".$i."' class='numero ".$ativo."'> ".$i." </a>";             }             if($pagina < $numPaginas) {                 echo "<a href='painel.php?pagina=".($pagina + 1)."' class='controle'>proximo &raquo;</a>";                     }         ?>     </table> </div> Grato!
    • Por dayenne
      Estou com um problema pra resolver e nao consigo pensar numa solução, imagino que seja algo bobo, mas não consigo resolver.
      Então, gostaria de saber como faço para marcar um checked em diferentes lugares do meu radio buttom dependendo de onde o usuario clicar
       
      por exemplo:
      estou em uma pagina e seleciono o plano MOTO 
       
      como ir para outra pagina com a opção MOTO ja selecionada no radio buttom.
       
      da mesma maneira se eu selecionar CARRO
      como ir para outra pagina com a opcao CARRO ja selecionada no radio buttom.
       
      apenas consegui passar os dados de uma pagina para outra, mas nao consigo alterar o checked do radio buttom.
      $mensagem = ""; switch (@$_GET['Opcao']){ case 1: $mensagem .= ' voce escolheu moto '; break; case 2: $mensagem .= ' voce escolheu carro '; break; case 3: $mensagem .= ' voce escolheu caminhao '; break; } echo $mensagem ?> dei um echo apenas para ver que realmente ta passando de uma pagina pra outra.
      me ajudem ai :)
    • Por Gustavo2503
      Olá!
      Eu preciso fazer uma tabela que contém muitos registros, para organizá-lo melhor eu necessitarei de uma paginação que não faça refresh na página, que não precise de um envio do método GET, que o usuário tivesse a opção de escolher quantos registros por página ele verá, e que só aparecesse no máximo 5 botões, por exemplo:
      < 1 2 3 4 5 >
      Ai o usuário foi pra página 8.
      < 6 7 8 9 10 >
      E detalhe, sem usar o DataTables. Agradeço.
    • Por Cesar Masserati Procopio
      Pessoal, boa Tarde!
      Pode me Ajudar com um probleminha que estou tendo hehehe...
      Fiz essa paginação via AJAX completa está tudo funcionando blz, porém quando tiver muitos registros está desconfigurando. 
      Gostaria de fazer, conforme pode ver nas imagens abaixo, a Imagem Original ficar igual a Imagem Modificada!
      Alguma Dica ou sugestão?


      function filtroProc(){ $('.pagination').html(''); var filtro = $('input[name=filtro]:checked').val(); filtros.setFiltro(filtro); var offset = getPaginacao.getOffsetAtual(); var maximo = getPaginacao.getMaximo(); var links = getPaginacao.getLink(); $.ajax({ url:'nav/conf/con_lis_pro_ajax.php', type:'POST', dataType:'json', data:{offset:offset, maximo:maximo, filtro:filtro}, success:function(json){ filtros.setTotalFiltro(json.totalFil); getPaginacao.setTotal(json.totalItem); var totalFiltros = filtros.getTotalFiltro(); var totalItens = getPaginacao.getTotal(); $('.tabela tbody').empty(); $(".contagem").html(totalFiltros); $(".total").html(totalItens); var verif = 0; if(verif === json){ var html = '<tr>'; html += '<td colspan=5><div class="msg_no">Não existe cadastro de Processos de Emissão!</div></td>'; html += '</tr>'; $('.tabela tbody').append(html); }else{ for(var i in json.lista){ var html = '<tr>'; html += '<td align="center">'+json.lista[i].id+'</td>'; if(json.lista[i].status === 'a'){ html += '<td align="center"><img src="../image/semaforo/verde.png" data-id="'+json.lista[i].id+'" data-name="i" onclick="atualizaStatus(this)"/></td>'; }else{ html += '<td align="center"><img src="../image/semaforo/vermelho.png" data-id="'+json.lista[i].id+'" data-name="a" onclick="atualizaStatus(this)" /></td>'; } html += '<td align="center">'+json.lista[i].identificador+'</td>'; html += '<td>'+json.lista[i].descricao+'</td>'; html += '<td><a class="lista_bt2" href="#" data-id="'+json.lista[i].id+'" onclick="editarPro(this)"></a></td>'; html += '</tr>'; $('.tabela tbody').append(html); } } // ---- PAGINAÇÃO ------ // var maximo = getPaginacao.getMaximo(); var totalPaginas = Math.ceil((totalFiltros / maximo)); htmlPag = '<a href=\"#" data-id="1" onclick="dispara(this);">Primeira Página</a>&nbsp;&nbsp;&nbsp;'; for (var i = 1; i <= totalPaginas; i++){ htmlPag += '<a href="#" data-id="'+i+'" onclick="dispara(this)" class="">'+i+'</a>&nbsp;&nbsp;&nbsp;'; } htmlPag += '<a href=\"#" data-id="'+totalPaginas+'" onclick="dispara(this);">Ultima Página</a>&nbsp;&nbsp;&nbsp;'; $('.pagination').append(htmlPag); $('.pagination').find('.active_pag').removeClass('active_pag'); $('.pagination').find('a[data-id='+getPaginacao.getPagAtual()+']').addClass('active_pag'); } }); }  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.