Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia,
encontrei um exemplo na internet de um "sistema" de paginação. Resolvi fazer do mesmo modo que a pessoa porém, estou tendo alguns problemas.
Segue o código abaixo:
//número de registros por página
$por_pagina = 3;
$init = ($_GET['pagina']-1) * $por_pagina;
$conta_paginas = contaServidores---ome($conexao, $cpf);
$result_total = $conta_paginas->fetch(PDO::FETCH_ASSOC);
$resultado_total = $result_total[count];
$num_paginas = ceil($resultado_total/$por_pagina);
Na variável $init está retornando o valor - 3. Se eu atribuir o $_GET['pagina '] = 1 para pegar a primeira página ele traz os dados corretos. Entretanto quando vou passar para segunda página através desse código:
<div>
<?php for($i = 1 ; $i <= $num_paginas; $i++){?>
<a href="resultadoBusca---ome.php?pagina=<?php echo $i ?>"><?php echo $i ?></a>
<?}?>
</div>
ele não lista os próximos resultados e parece que encera a sessão de login fazendo com que eu tenha que logar novamente no sistema.
Alguém poderia me dar algum direcionamento?
Att
>
Primeiro verifique se $_GET['pagina'] está setado e faça o tratamento, isto resolve o problema do -3.
$pagina = (isset($_GET['pagina']))?$_GET['pagina']:1;
$init = ($pagina-1) * $por_pagina;Realizei a modificação acima e agora está pegando somente os 3 primeiros registros quando tento passar de página não traz nada.
O SQL está assim:
SELECT S2.nm_servidor, S3.nr_matricula, S3.cd_departamento, S1.dt_admissao, S1.dt_demissao,
S3.cd_especialidade, ds_cargo
FROM sch_gp.tb_vinculos_servidor S1
INNER JOIN tb_servidor S2 on S1.nr_cpf_servidor = S2.nr_cpf_servidor
INNER JOIN sch_decom.tb_servidor S3 on S2.nr_cpf_servidor = S3.nr_cpf and
S3.nm_servidor = S2.nm_servidor and S3.nr_matricula = S1.nr_matricula
WHERE S2.nr_cpf_servidor = '{$nr_cpf}' order by dt_admissao
LIMIT '{$por_pagina}' OFFSET '{$init}'Dá um echo no $_GET['pagina'] e no $init para ver o que aparece a partir da segunda página...
> Dá um echo no $_GET['pagina'] e no $init para ver o que aparece a partir da segunda página...
Ele pega o $_GET['pagina'] com o valor 2 e o $init com o valor 3;É o esperado... você está usando que SGBD?
É o esperado... você está usando que SGBD?
Estou usando postgresql. Parece que ele não executa as minhas funções. Quando troca de página parece que as funções não são executadas de novo.
Vou mover para a área do SGBD, pois em tese a parte do PHP está ok.
Vou mover para a área do SGBD, pois em tese a parte do PHP está ok.
Última dúvida. Será que isso pode estar acontecendo por eu fazer uma consulta em uma página anterior e listar os dados na página subsequente?
Tenho um comboBox que retorna todas as pessoas, o usuário escolhe a pessoa que ele quer fazer a pesquisa e é redirecionado outra página (a de paginação) com os dados.
PS: acabei de dar um print_r na meu sql e quando vai para 2º página a variável que eu passava como parâmetro (CPF) parece estar vazia.
eu pego o cpf da página anterior da seguinte maneira:
$cpf = $_POST['nr_cpf_servidor'];
Alguma sugestão ?