Pesquisa e paginação com o PHP não funcionam
Boa noite, galera é o seguinte eu estou montando um script que pesquisa no banco de dados e mostrar os resultados em uma página php, bem aí que está o problema eu pesquisei alguns sistemas de paginação e de pesquisa e acabei montando meu script, no meu script a pesquisa aparece na primeira página mas quando passo para a página adiante não me é mostrado resultado nenhum já verifiquei tudo e não consigo encontrar o erro, será que alguém pode me ajudar?
<?php
#Incluindo a conexão no banco de dados
require_once '../dao/conexao/Conexao.php';
$conexao = Conexao::getInstance();/***********************************************/
#Aqui começa a parte a paginação e pesquisa
/**********************************************/
#Limitando o número máximo de resultados que serão mostrados na tela
$maximo = 1;
#Armazenando o valor da página atual
$pagina = isset($_GET["pagina"])? ($_GET["pagina"]): '1';
#Subtraindo 1, porque os registro começam do zero como em um array
$inicio = $pagina - 1;
#Multiplicamos a quantidade de registros da pagina pelo valor da pagina atual
$inicio = $maximo * $inicio;
#Agora chega a parte em que fazemos o SELECT para contar os resultados
$sql = "SELECT * FROM centroautomotivo";
$stmt = $conexao->prepare($sql);
$stmt->execute();
$contagem = $stmt->fetchAll(PDO::FETCH_ASSOC);
$total = 0;if(count($contagem)){
foreach ($contagem as $linhas) {
#Armazenando o total de registros da tabela para fazer a paginação
$total = count($contagem);
}
}/*******************************************************************
* Aqui vai começar a parte da pesquisa, tornando o script em um só
********************************************************************/
#Recebe o termo da pesquisa se existir
$termo = (isset($_GET["termo"])) ? ($_GET["termo"]) : '';
#Executa uma pesquisa com o termo pesquisado como parametro - Este SELECT irá servir também para a paginaçãoif(empty($termo)){
//Nada aqui
} else{
$sql = "SELECT * FROM centroautomotivo WHERE nomefantasia LIKE :nomefantasia or email LIKE :email ORDER BY idCentro LIMIT $inicio,$maximo";
$stm = $conexao->prepare($sql);
$stm->bindValue(':nomefantasia', '%'.$termo.'%');
$stm->bindValue(':email', '%'.$termo.'%');
$stm->execute();
$autocenters = $stm->fetchAll(PDO::FETCH_ASSOC);
}
<?php
require_once '../includes/header.php';
require_once '../controller/paginacaoPesquisaCentro.php';
?>
<div class="container mb-5">
<h1 class="text text-center">Centros Automotivos</h1>
<p class="text text-center">Encontre o centro automotivo que mais se encaixa com você</p>
<!--Formulário de pesquisa com paginação-->
<form method="GET" action="">
<div class="d-flex flex-column bd-highlight mb-3">
<div class="p-2 bd-highlight"><img src="../img/Logotipo.png" class=" img-fluid rounded mx-auto d-block"></div>
<div class="p-2 bd-highlight d-flex justify-content-center" style="margin-top: -10px;"><input type="text" name="termo" class="form-control" style=" width: 60%;" placeholder="Pesquise pelo Centro Automotivo!"/></div>
<div class="p-2 bd-highlight d-flex justify-content-center"><button type="submit" class="btn btn-outline-primary"><i class="fas fa-search"></i> Pesquisar</button></div>
</div>
</form>
<!--Fim do formuláio de pesquisa-->
<!--Início dos resultados da pesquisa-->
<?php if(!empty($autocenters)){?>
<?php foreach ($autocenters as $autocenter) { ?>
<center>
<div class="card mb-3" style="max-width: 540px;">
<div class="row no-gutters">
<div class="col-md-4">
<img src="../controller<?php empty($autocenter["foto"])? 'images/pic.png' : $autocenter["foto"] ?>" class="card-img img-fluid" width="150px" height="150px">
</div>
<div class="col-md-8">
<div class="card-body">
<p class="card-text text-justify"><?php $autocenter["nomefantasia"]?></p>
<p class="card-text text-justify"><small class="text-muted"><?=$autocenter["email"]?></small></p>
</div>
</div>
</div>
</div>
</center>
<?php }//Fechamento do foreach?>
<div id="alignpaginacao">
<?php
//determina de quantos em quantos links serão adicionados e removidos
$max_links = 6;
//dados para os botões
$previous = $pagina - 1;
$next = $pagina + 1;
//usa uma funcção "ceil" para arrendondar o numero pra cima, ex 1,01 será 2
$pgs = ceil($total / $maximo);
//se a tabela não for vazia, adiciona os botões
if($pgs > 1 ){
echo "<br/>";
//botao anterior
if($previous > 0){
echo "<div id='botaoanterior'><a href=".$_SERVER['PHP_SELF']."?termo={$termo}?pagina=$previous><input type='submit' name='bt-enviar' id='bt-enviar' value='Anterior' class='button' /></a></div>";
} else{
echo "<div id='botaoanteriorDis'><a href=".$_SERVER['PHP_SELF']."?pagina=$previous><input type='submit' name='bt-enviar' id='bt-enviar' value='Anterior' class='button' disabled='disabled'/></a></div>";
}
echo "<div id='numpaginacao'>";
for($i=$pagina-$max_links; $i <= $pgs-1; $i++) {
if ($i <= 0){
//enquanto for negativo, não faz nada
}else{
//senão adiciona os links para outra pagina
if($i != $pagina){
if($i == $pgs){ //se for o final da pagina, coloca tres pontinhos
echo "<a href=".$_SERVER['PHP_SELF']."?pagina=".($i).">$i</a> ...";
}else{
echo "<a href=".$_SERVER['PHP_SELF']."?pagina=".($i).">$i</a>";
}
} else{
if($i == $pgs){ //se for o final da pagina, coloca tres pontinhos
echo "<span class='current'> ".$i."</span> ...";
}else{
echo "<span class='current'> ".$i."</span>";
}
}
}
}
echo "</div>";
//botao proximo
if($next <= $pgs){
echo " <div id='botaoprox'><a href=".$_SERVER['PHP_SELF']."?termo={$termo}?pagina=$next><input type='submit' name='bt-enviar' id='bt-enviar' value='Proxima' class='button'/></a></div>";
}else{
echo " <div id='botaoproxDis'><a href=".$_SERVER['PHP_SELF']."?pagina=$next><input type='submit' name='bt-enviar' id='bt-enviar' value='Proxima' class='button' disabled='disabled'/></a></div>";
}
}
?>
</div>
<?php }//Fechamento do if?>
<!--Fim dos resultados da pesquisa-->
<!--Início da paginação-->
<!--Fim da paginação-->
</div>
<?php
require_once '../includes/footer.php';
?>
Bem aí está meu código, fico muito agradecido se puderem me ajudar.Discussão (1)
Carregando comentários...