to tentando colocar paginação em um sisteminha de busca...
se eu efetuar a busca sem usar nenhuma palavra, a busca retorna todos os e a paginação funciona corretamente...
o problema é quando eu busco por alguma coisa, 2 exemplos..
se eu procurar cassiano, a busca me retorna 4 registros, na paginação defini 10 registros por página, mas mesmo assim a paginação aparece como se eu tivesse feito a busca sem nenhuma palavra...
a paginação fica assim: 1 2 3 4 ....
como só achou 4 registros, então isso não era pra aparecer...
outro caso é se eu procurar por 2 palavras, por exemplo: cassiano designer
digamos que ele retorne 8 registros, não precisa de paginação, mas mesmo assim ela é exibida...
nesse caso com duas palavras a url fica assim:
admin.php?pg=localizar&busca=cassiano+designer
mas se eu ir para a página 2 aparece assim
admin.php?pg=localizar&busca=cassiano
a 2ª ou mais palavras não aparecem, e aí a busca vai procurar só pela 1ª...
espero ter sido o mais claro possível....
localizar.php
<?php
$busca = $_GET["busca"];
$NumReg = 10;
if(!isset($_GET["pag"])) {
$pag = 0;
}
$inicio = $pag * $NumReg;
$sql = "SELECT * FROM shows WHERE evento LIKE '%$busca%' LIMIT $inicio, $NumReg";
$seleciona = mysql_query($sql);
$total = mysql_num_rows ($seleciona);
if ($total == 0) {
echo "<h2>Nenhum show encontrado...</h2>";
}
else {
echo "<h2>$total shows encontrados</h2>";
}
$sql2 = mysql_query("SELECT * FROM shows");
$tr = mysql_num_rows($sql2);
?>
<?php
echo "<table cellspacing='0' cellpadding='0'>";
while ($exibe = mysql_fetch_array ($seleciona)) {
aqui exibo os dados...
}
echo "</table>";
echo "<br /><br />";
include "paginacao_busca.php";
?>
paginacao_busca.php
<?php
# Número total de páginas
$Npg = ceil($tr / $NumReg);
$Npg++;
# Verifica se esta na primeira página, se não estiver ele libera o link para anterior
if ( $pag > 0) {
echo "<span class='AntProx'><a href=".$PHP_SELF."?pg=" . $_GET["pg"] . "&pag=".($pag-1) ."&busca=" . $_GET["busca"] . " class='ant'>Anterior</a></span>";
}
else {
echo ""; # Caso contrário oculta o link "anterior"
}
# Faz aparecer os numeros das páginas entre os links ANTERIOR e PROXIMA
for($i = 1; $i < $Npg; $i++) {
# Verifica a página que o navegante esta e retira o link do número para identificar visualmente
if($pag == ($i - 1)) {
echo "<span class='pga'>$i</span>";
}
else {
# Acrescenta os links para cada página
$i2 = $i - 1;
echo "<a href=".$PHP_SELF."?pg=" . $_GET["pg"] . "&pag=" . $i2 . "&busca=" . $_GET["busca"] . " class='pg'>$i</a>";
}
}
# Verifica se esta na ultima página, se não estiver ele libera o link para próxima
if (($pag + 2) < $Npg) {
echo "<span class='AntProx'><a href=".$PHP_SELF."?pg=" . $_GET["pg"] . "&pag=".($pag + 1)."&busca=" . $_GET["busca"] . " class='prox'>Próxima</a></span>";
}
else {
echo ""; # Caso contrário oculta o link "próxima"
}
?>
Pergunta
cassianooliver
to tentando colocar paginação em um sisteminha de busca...
se eu efetuar a busca sem usar nenhuma palavra, a busca retorna todos os e a paginação funciona corretamente...
o problema é quando eu busco por alguma coisa, 2 exemplos..
se eu procurar cassiano, a busca me retorna 4 registros, na paginação defini 10 registros por página, mas mesmo assim a paginação aparece como se eu tivesse feito a busca sem nenhuma palavra...
a paginação fica assim: 1 2 3 4 ....
como só achou 4 registros, então isso não era pra aparecer...
outro caso é se eu procurar por 2 palavras, por exemplo: cassiano designer
digamos que ele retorne 8 registros, não precisa de paginação, mas mesmo assim ela é exibida...
nesse caso com duas palavras a url fica assim:
mas se eu ir para a página 2 aparece assima 2ª ou mais palavras não aparecem, e aí a busca vai procurar só pela 1ª...
espero ter sido o mais claro possível....
localizar.php
paginacao_busca.phpLink para o comentário
Compartilhar em outros sites
18 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.