Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

leonardo2334

como mostrar corretamenta a paginacao

Recommended Posts

boa noite eu fiz uma parte do meu sistema de paginação mas ele sempre mostra o numero máximo de produtos no meu banco sendo que na busca eu especifiquei o nome tipo eu faco a busca por Leonardo ai no meu banco tem Leonardo cadastrado e mais 8 pessoas ai ele me traz o Leonardo como primeiro e continua mostrando sem nada as li da paginação com os números como posso arrumar isso para buscar pelo o que o cara digitar no formulário de busca? meu código esta aqui ele e meio grande:

<?php
require_once
("classe/conexao.class.php");
$c = new Conexao();
$c->conecta();
// inicia paginacao
$totalProduto = 1;
$pagina = (@isset($_GET['pagina'])) ? (int)$_GET['pagina']: 1;
$inicio = ($totalProduto * $pagina) - $totalProduto;

$busca = $_GET['q'];
$sql = mysql_query("SELECT * FROM produtos WHERE nome LIKE '%$busca%' OR categoria LIKE '%$busca%' ORDER BY id_produto LIMIT $inicio, $totalProduto");
if(empty($_GET['q'])){
echo"<script>alert('Nenhum Resultado Encontrado'), window.open('index.php','_self')</script>";
exit();
}
while($registro = mysql_fetch_array($sql)){
$nome = $registro['nome'];
$categoria = $registro['categoria'];
$descricao = $registro['descricao'];
$preco = $registro['preco'];
$img = $registro['img'];
$id = $registro['id_produto'];
$_SESSION['id'] = $id;

print"
<div class=\"col-sm-4\">
<div class=\"product-image-wrapper\">
<div class=\"single-products\">
<div class=\"productinfo text-center\">
<img src=\"images/shop/$img\" alt=\"$nome\" width=\"694\" height=\"300\" />
<h2>R$ $preco</h2>
<p>$nome</p>
<a href=\"detalhe.php?cod=$id\" class=\"btn btn-default add-to-cart\"><i class=\"fa fa-shopping-cart\"></i>Detalhes</a>
</div>
</div>
</div>
</div>"
;
}//fim while

$sqlTotal = "SELECT id_produto FROM produtos";
$qrTotal = mysql_query($sqlTotal) or die (mysql_error());
$numTotal = mysql_num_rows($qrTotal);
$totalPagina = ceil($numTotal/$totalProduto);
?>
<div class="col-md-12 text-center">
<?php
echo
"
<ul class=\"pagination\">
<li class=\"active\"><a href=\"?pagina=1&q=$busca\">Primeira Pagina</a></li>
</ul>

"
;
for($i = 1; $i <= $totalPagina; $i++){
if($i == $pagina)
echo "
<ul class=\"pagination\">
<li class=\"active\"><a hreaf="
.$i.">$i</a></li>
</ul>"
;
else
echo"
<ul class=\"pagination\">
<li><a href=\"?pagina=$i&q=$busca\">$i</a></li>
</ul>
"
;
};

mysql_close();
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que filtrar na query que você utiliza para montar a paginação também.

$sqlTotal = "SELECT id_produto FROM produtos";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não. A query responsável por contar os registros da busca deve ficar assim:

SELECT * FROM produtos WHERE nome LIKE '%$busca%' OR categoria LIKE '%$busca%'

Dessa forma, ele vai contar os registros que forem encontrados e fazer a paginação com base nisso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.