Naty_Za Postado Agosto 16, 2007 Denunciar Share Postado Agosto 16, 2007 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Agosto 16, 2007 Denunciar Share Postado Agosto 16, 2007 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... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Naty_Za Postado Agosto 16, 2007 Autor Denunciar Share Postado Agosto 16, 2007 Oi ESerra.. você poderia exemplificar pra mim, por favor???????????????não imagino como poderia fazer o que disse!!!Valeeww Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Agosto 16, 2007 Denunciar Share Postado Agosto 16, 2007 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). Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Naty_Za
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:
Me ajudem aí.. pls!!!!!
Valewww
Link para o comentário
Compartilhar em outros sites
3 respostass 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.