Sistema de Busca com Paginação
A questão é:
Quando faço a consulta obtenho o seguinte resultado [imagem1]
Ao clicar para ir para página 2, obtenho o seguinte resultado [imagem2]
Ou seja, na página "1" tudo funcionando com o total de resultados exibidos (10) e com os total de links (2), só que ao ir para página "2", aparece muito mais links, o que indica que ele consultou e retornou toda tabela, preencheu com a quantidade respectiva de links e mostrou o conteúdo errado na página 2.
Obs:
19 campos com o termo CONFEF;
10 resultados por paginação;
4 links para página anterior e seguinte;
77 campos na tabela duvidas;
[img:descricao=imagem1]http://arquivo.devmedia.com.br/forum/imagem/451932-20150903-191647.png[/img]
[img:descricao=imagem2]http://arquivo.devmedia.com.br/forum/imagem/451932-20150903-191711%20%281%29.png[/img]
formulario.php
<body> <form name="frmBusca" method="post" enctype="multipart/form-data" action="pesquisa.php?pag=1" > <input type="text" name="palavra" /> <input type="submit" value="Buscar" /> </form> </body>
pesquisa.php
<!-- Inicio do Sistema de Busca Interna --> <?php //Se pg não existe atribui 1 a variável pag $pag = (isset($_GET['pag'])) ? (int)$_GET['pag'] : 1 ; if($pag=='0'){ $pag = '1'; } // Pegamos a palavra $palavra = trim($_POST['palavra']); $maximo = '10'; //Atribui a variável inicio o inicio de onde os registros vão ser mostrados por página, exemplo 0 à 10, 11 à 20 e assim por diante $inicio = ($pag * $maximo) - $maximo; $sql = "SELECT * FROM duvidas WHERE resposta LIKE '%$palavra%' LIMIT ".$inicio. ", ". $maximo; try { $consulta = $conecta->prepare($sql); $consulta->execute(); $conecta->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); $resultado = $consulta->fetchAll();// Recuperar todos valores encontrados $count = $consulta->rowCount(PDO::FETCH_ASSOC);// Quantos registros foram encontrados }catch (PDOException $erro) { die("Não foi possível conectar ao banco de dados :" . $erro->getMessage()); } if ($count != 0) { foreach($resultado as $res){ $pergunta = $res['pergunta']; $id = $res['id']; echo '<br>'; echo '<a href="http://cref14.org.br/visualizar_resposta.php?id='.$id.'">• <span style="color:black; font-size:10px;">'.$pergunta.'</span></strong>'; echo '<br>'; } //echo "Foram encontrados ".$count." registro(s)"; } // Se não houver registros else { echo "Nenhum produto foi encontrado com a palavra ".$palavra.""; } ?> <!-- Fim Sistema de Busca Interna --> <!-- Inicio Paginação --> <?php // Query de consulta $sql = "SELECT * FROM duvidas WHERE resposta LIKE '%$palavra%'"; try { $consulta = $conecta->prepare($sql); $consulta->execute(); $conecta->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); $resultado = $consulta->fetchAll();// Recuperar todos valores encontrados $count = $consulta->rowCount(PDO::FETCH_ASSOC);// Quantos registros foram encontrados }catch (PDOException $erro) { die("Não foi possível conectar ao banco de dados :" . $erro->getMessage()); } $paginas = ceil($count/$maximo); $links = '4'; echo '</br></br></br><ul id="paginacao">'; echo '<li><a href="pesquisa.php?pag=1" >Primeira</a></li>'; for($i = $pag-$links; $i <= $pag-1; $i++){ if($i <= 0){ }else{ echo '<li><a href="pesquisa.php?pag='.$i.'">'.$i.'</a></li>'; } } echo "<li>$pag</li>"; for($i = $pag+1; $i <= $pag+$links; $i++){ if($i > $paginas){ }else{ echo '<li><a href="pesquisa.php?pag='.$i.'">'.$i.'</a></li>'; } } echo '<li><a href="pesquisa.php?pag='.$paginas.'">Última</a></li></br></br></br>'; echo'</ul>'; ?> <!-- Fim Paginação -->
Lucas
Curtidas 0