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>";
?>
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.