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

Paginação não funciona corretamente.


Rodrigo Azevedo Lima

Pergunta

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:

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

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

isso ocorre porque quando voce clica em proxima da um post novamente, porem ele esta perdendo o valor da variavel $nome_pac.

voce tera que passar o $nome_pac pelo link e receber via GET[]

não é muito bonito de se ver mais acredito que se voce fizer as alteracoes abaixo ira funcionar

onde tem

$nome_pac = trim($_POST['nome_paciente']);
coloque:
if (get[nome_pac]){
    $nome_pac = $_GET[nome_pac];
}else{
    $nome_pac = trim($_POST['nome_paciente']);
}
e no link de mudar de pagina acrescente:
&nome_pac=$nome_pac

espero ter ajudado.

Editado por Toze
Link para o comentário
Compartilhar em outros sites

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...