Estou tentando fazer um script de paginação funcionar mas, não estou conseguindo. Tenho um formulário em uma tela onde digito o nome do paciente e clico no botão Buscar. O nome do paciente é enviado (através do método POST) para o formulário onde se encontra o script de busca.
O script imprimi de 10 em 10.
Ele identifica corretamente os registros e os numera por página, mas, se por exemplo vier página [1] [2], quando clico no 2 o script me mostra todas os números de páginas e todos os registros do banco que estão fora da seleção que foi feita.
Já tentei de tudo e não consegui arrumar. Por favor, preciso de ajuda.
Script postado abaixo:
<?php
$nome_pac = "";
$nome_pac = trim($_POST['nome_paciente']);
$quantidade = 10;
$pagina = (isset($_GET['pagina'])) ? (int)$_GET['pagina'] : 1;
$inicio = ($quantidade * $pagina) - $quantidade;
//Verificamos no banco de dados osteogênese se algum nome equivale ao digitado.
$sql_pac = ("SELECT * FROM tbl_paciente WHERE pac_nome_paciente LIKE '%".$nome_pac."%'");
$qr_pac = mysql_query($sql_pac) or die (mysql_error());
$num_total = mysql_num_rows($qr_pac);
$total_pagina = ceil($num_total/$quantidade);
//Verificamos no banco de dados o total de registros existentes.
$sql_total = ("SELECT * FROM tbl_paciente WHERE pac_nome_paciente LIKE '%".$nome_pac."%' LIMIT $inicio, $quantidade");
$qr_total = mysql_query($sql_total) or die (mysql_error());
//Descobrimos o total de registros encontrados.
$numRegistros = mysql_num_rows($qr_total);
//Se houver pelo menos um registro, exibe-o.
if($numRegistros != 0):
//Exibe o nome dos usuários e suas respectivas siglas de hospital.
while ($linha_pac = mysql_fetch_assoc($qr_total)) {
$formata_dia_cadastro = trim($linha_pac['pac_dia_cadastro']);
if(strstr($formata_dia_cadastro, "-")):
$aux = explode ("-", $formata_dia_cadastro);
$dia_cadastro = $aux[2] . "/". $aux[1] . "/" . $aux[0];
endif;
echo "<br />";
echo "<b>$dia_cadastro - </b>";
echo "<b>".strtoupper($linha_pac['pac_nome_paciente'])." - </b>";
echo "<b><a href='../admin/b_paciente.php?paciente_id=".$linha_pac[pac_paciente_id]."'>".$linha_pac[pac_prontuario]."</a>";
echo "<br /><br />";
}
//Senão houver registros.
else:
echo "<b>Nenhum PACIENTE foi encontrado com o NOME:</b> $nome_pac";
echo "<br /><br />";
endif;
$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\">Anterior</a>";
} else {
$prev_link = "Anterior";
}
if ($total_pagina > $pagina) {
$next_link = "<a href=\"$PHP_SELF?pagina=$next\">Próxima";
} else {
$next_link = "Próxima";
}
$painel = "";
for($x = 1; $x <= $total_pagina; $x++) {
if($x == $pagina) {
$painel.= " [$x] ";
} else {
$painel.= " <a href=\"$PHP_SELF?pagina=$x\">[$x]</a>";
}
}
echo "<div align='center'>$prev_link | $painel | $next_link</div>";
?>
Utilizamos cookies e tecnologias semelhantes de acordo com a nossa Política de Privacidade, e ao continuar navegando, você concorda com estas condições.
Pergunta
Rodrigo Azevedo Lima
Olá pessoal,
Estou tentando fazer um script de paginação funcionar mas, não estou conseguindo. Tenho um formulário em uma tela onde digito o nome do paciente e clico no botão Buscar. O nome do paciente é enviado (através do método POST) para o formulário onde se encontra o script de busca.
O script imprimi de 10 em 10.
Ele identifica corretamente os registros e os numera por página, mas, se por exemplo vier página [1] [2], quando clico no 2 o script me mostra todas os números de páginas e todos os registros do banco que estão fora da seleção que foi feita.
Já tentei de tudo e não consegui arrumar. Por favor, preciso de ajuda.
Script postado abaixo:
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.