Gente.... to tentando colocar paginação, nessa página de resultado de busca...
e não estou conseguindo...
a paginação funciona perfeitamente em outras sessões do site, tipo, pra exibir todos os registro de um determinado setor...
Eu acho q o erro que está dando nessa página de busca, é porque eu não posso usar do mesmo jeito, pedindo pra ele listar todos e separando de 10 em 10, porque num resultado de pesquisa, não sabemos qtos resultados vão ter...
então, acredito eu, que esta parte do código teria q ser mudada:
$busca = mysql_query("SELECT count(*) FROM cadastros;");
e colocar algo igual do select, tipo:
HTTP_POST_VARS[palavra]
mas não sei como fazer essa junção..
tb nem sei se o problema está aí.. é só a minha opnião..
mas como sou iniciante em PHP, estou completamente perdida....
=/
Segue o código abaixo..
me ajudem, por favor!!
<?
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;
if(!empty($HTTP_POST_VARS[palavra])) {
$palavras = explode(' ', $HTTP_POST_VARS['palavra']); //separa as palavras e as coloca em um array
$qr = "SELECT * FROM cadastros WHERE";
//adiciona o trecho SQL para cada palavra
foreach($palavras as $palavra){
$qr .= "(titulo LIKE '%".$palavra."%' OR cidade LIKE '%".$palavra."%' OR texto LIKE '%".$palavra."%' OR uf LIKE '%".$palavra."%' OR endereco LIKE '%".$palavra."%') AND ";
}
//o "1 = 1" é necessário, para não conflitar com o último AND
$qr .= "1 = 1 ORDER BY titulo ASC";
$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["site"];
$campo7 = $dados["email"];
$campo8 = $dados["uf"];
$campo9 = $dados["texto"];
if ($campo6 != ""){
$varHref = "<a href=\"http://$campo6\" target=\"_blank\" ><b>$campo1</b></a>";
}else{
$varHref = $campo1;
}
echo "
<font color=#00496e><b>".$varHref."</b></font><br>
<i>$campo9 </i><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']}?id_submenu=".$_GET['id_submenu']."&pag=$anterior\">Anterior</a> - ";
for($i=1; $i<$pag; $i++)
if($i>=$pag-$link_p_pag)
echo "<a href=\"{$_SERVER['PHP_SELF']}?id_submenu=".$_GET['id_submenu']."&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']}?id_submenu=".$_GET['id_submenu']."&pag=$i\">$i</a>";
$proxima = $pag+1;
if ($proxima>$num_total_paginas)
echo " - Próxima";
else
echo " - <a href=\"{$_SERVER['PHP_SELF']}?id_submenu=".$_GET['id_submenu']."&pag=$proxima\">Próxima</a>";
?>
Pergunta
Naty_Za
Gente.... to tentando colocar paginação, nessa página de resultado de busca...
e não estou conseguindo...
a paginação funciona perfeitamente em outras sessões do site, tipo, pra exibir todos os registro de um determinado setor...
Eu acho q o erro que está dando nessa página de busca, é porque eu não posso usar do mesmo jeito, pedindo pra ele listar todos e separando de 10 em 10, porque num resultado de pesquisa, não sabemos qtos resultados vão ter...
então, acredito eu, que esta parte do código teria q ser mudada:
$busca = mysql_query("SELECT count(*) FROM cadastros;");e colocar algo igual do select, tipo: HTTP_POST_VARS[palavra] mas não sei como fazer essa junção.. tb nem sei se o problema está aí.. é só a minha opnião.. mas como sou iniciante em PHP, estou completamente perdida.... =/ Segue o código abaixo.. me ajudem, por favor!!<? 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; if(!empty($HTTP_POST_VARS[palavra])) { $palavras = explode(' ', $HTTP_POST_VARS['palavra']); //separa as palavras e as coloca em um array $qr = "SELECT * FROM cadastros WHERE"; //adiciona o trecho SQL para cada palavra foreach($palavras as $palavra){ $qr .= "(titulo LIKE '%".$palavra."%' OR cidade LIKE '%".$palavra."%' OR texto LIKE '%".$palavra."%' OR uf LIKE '%".$palavra."%' OR endereco LIKE '%".$palavra."%') AND "; } //o "1 = 1" é necessário, para não conflitar com o último AND $qr .= "1 = 1 ORDER BY titulo ASC"; $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["site"]; $campo7 = $dados["email"]; $campo8 = $dados["uf"]; $campo9 = $dados["texto"]; if ($campo6 != ""){ $varHref = "<a href=\"http://$campo6\" target=\"_blank\" ><b>$campo1</b></a>"; }else{ $varHref = $campo1; } echo " <font color=#00496e><b>".$varHref."</b></font><br> <i>$campo9 </i><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']}?id_submenu=".$_GET['id_submenu']."&pag=$anterior\">Anterior</a> - "; for($i=1; $i<$pag; $i++) if($i>=$pag-$link_p_pag) echo "<a href=\"{$_SERVER['PHP_SELF']}?id_submenu=".$_GET['id_submenu']."&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']}?id_submenu=".$_GET['id_submenu']."&pag=$i\">$i</a>"; $proxima = $pag+1; if ($proxima>$num_total_paginas) echo " - Próxima"; else echo " - <a href=\"{$_SERVER['PHP_SELF']}?id_submenu=".$_GET['id_submenu']."&pag=$proxima\">Próxima</a>"; ?>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.