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

Paginação Em Resultado De Busca


Naty_Za

Pergunta

Oi pessoal.. to com um probleminha...

to tentando implementar um script de paginação no resultado de busca do meu site..

só que assim: os registros aparecem somente na 1º página.. a partir da 2º fica em branco...

sendo que tem mais resultados a serem mostrados ainda....

porque será??? vou postar meu código:

<? 
                include("config.php");

$link_p_pag = 5;
$reg_p_pag = 10;
$pag = $_GET['pag'];

$busca = mysql_query("SELECT count(*) FROM cadastros;");
$registros = mysql_result($busca,0); 

$num_total_paginas = ($registros%$reg_p_pag==0)?$registros/$reg_p_pag:floor($registros/$reg_p_pag)+1;



if ($pag>$num_total_paginas)
echo "Error<br><br>";
else

if (!$pag)
$pag = 1;

$inicio = ($reg_p_pag*$pag)-$reg_p_pag;
echo "Inicia em: $inicio<br><br>";
                
                if(!empty($HTTP_POST_VARS[palavra])) { 
    $palavra = str_replace(" ", "%", $HTTP_POST_VARS[palavra]); // Altera os espaços adicionando no lugar o simbolo % 
    
$qr = "SELECT * FROM cadastros WHERE titulo LIKE '%".$palavra."%' OR cidade LIKE '%".$palavra."%' OR servicos LIKE '%".$palavra."%' OR estado LIKE '%".$palavra."%' OR palavras LIKE '%".$palavra."%' ORDER BY titulo ASC LIMIT $inicio, $reg_p_pag"; // definimos para buscar no campo1 e ordenar pelo campo que você quiser.
$result = @mysql_query($qr);
    
$sql = mysql_query($qr) or die (mysql_error()); // Executa a query no Banco de Dados 
    
$total = mysql_num_rows($sql); // Conta o total ded resultados encontrados 
    
echo "<font face=Verdana, Arial, Helvetica, sans-serif><font size=1>Sua busca retornou <b>$total</b> resultados.</font><br><br>\n"; // mostra quantos resultados retornou e logo depois exibe
    
while ($dados = mysql_fetch_array($sql)) {
$campo1 = $dados["titulo"];
$campo2 = $dados["endereco"];
$campo3 = $dados["cidade"];
$campo4 = $dados["tel"];
$campo5 = $dados["id"];
$campo6 = $dados["http"];
$campo7 = $dados["email"];
$campo8 = $dados["estado"];
$campo9 = $dados["servicos"];
               

echo "
<font face=Verdana, Arial, Helvetica, sans-serif><strong><font size=1><a href=\"http://$campo6\" 
target=\"_blank\" >$campo1</strong></a></font><br>
$campo9 <BR>
$campo2<BR>
$campo3 / $campo8 <br>
Tel: $campo4<BR>
Email: <a href=mailto:$campo7>$campo7</a><BR>
<BR>
";
} 

echo "<hr><br>";

$anterior = $pag-1;
if ($anterior<1)
echo "Anterior - ";
else
echo "<a href=\"{$_SERVER['PHP_SELF']}?pag=$anterior\">Anterior</a> - ";

for($i=1; $i<$pag; $i++)
if($i>=$pag-$link_p_pag)
echo "<a href=\"{$_SERVER['PHP_SELF']}?pag=$i\">$i</a> - ";

echo "<b>$pag</b>";

for($i=$pag+1; $i<=$num_total_paginas; $i++)
if($i<=$pag+$link_p_pag)
echo " - <a href=\"{$_SERVER['PHP_SELF']}?pag=$i\">$i</a>";

$proxima = $pag+1;
if ($proxima>$num_total_paginas)
echo " - Próxima";
else
echo " - <a href=\"{$_SERVER['PHP_SELF']}?pag=$proxima\">Próxima</a>";
}
?>

Me ajudem aí.. pls!!!!!

Valewww

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Ele só mostra a primeira página, porque os dados que são usados na query só existem na primeira página...você faz a pesquisa, os dados são enviados do form para a query, mas na página 2 esses dados não existem mais... 2 soluções, ou você passa esses dados via querystring junto com a informação da página (que é aquele $anterior $proximo) ou salva os dados da pesquisa em sessões e ai resgata eles para quando o cara ir para a próxima página o sistema ter com o que buscar os dados no BD...

Link para o comentário
Compartilhar em outros sites

  • 0

Na página que exibe o primeiro resultado (logo após submeter o form)...

coloca algo do tipo...

if (!empty ($_POST['nome_do_campo'])){
$variavel = $_POST['nome_do_campo'];
$_SESSION['variavel'] = $_POST['nome_do_campo'];
}else{
$variavel = $_SESSION['variavel'];
}

Explicando o código, o if vai ser verdadeiro quando o form for submetido, então se define um variável chamada $variavel com o valor vindo do FORM e também salva o valor vindo do form em uma sessão, para o IF retornar falso, é sinal de que o cara não tá na página que recebeu os dados do formulário, então a gente simplesmentre atribui o valor da $variavel com o que estiver gravado na sessão... claro que tem que colocar o session_start() no início da página... e também que na query deverá ser chamada a $variavel que sempre vai ter um valor (vindo do $_POST ou $_SESSION de acordo com o IF/ELSE).

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...