Jump to content
Fórum Script Brasil
  • 0

Paginação Em Resultado De Busca


Naty_Za
 Share

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.1k
    • Total Posts
      647.1k
×
×
  • Create New...