Bom galera, com muito sacrificio, eu consegui fazer um sisteminha de busca que gera os links das noticias para os resultados, pesquisei e estudei muito para conseguir, porem eu queria fazer com que apareça apenas 20 resultados por pagina.
Bom muitos aqui devem saber como funciona para aparecer da seguinte maneira << Anterior 1 2 3 4 5 Proxima >>
É só isso que eu preciso!
A baixo segue meu codigo
o banco de dados ----------->
CREATE TABLE `noticia` (
`id` int(11) NOT NULL auto_increment,
`titulo` varchar(100) default NULL,
`sessao` varchar(25) default NULL,
`noticia` text NOT NULL,
`video` text NOT NULL,
`data_hora` timestamp NOT NULL default CURRENT_TIMESTAMP,
`ip` varchar(50) NOT NULL,
`publicado` char(1) default 'N',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=27 ;
------------------------------------------------------>
O formulario
<form name="frmBusca" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>?a=buscar" >
<table>
<tr>
<td>Busca no site: </td>
<td><label>
<input name="palavra" type="text" id="palavra" size="10" style="border:none" height="15"/>
</label></td>
<td><label>
<input name="ok" type="submit" id="ok" value="ok" align="top" height="18" width="18" style="background-color:#C40000; font:'Trebuchet MS', Arial, Helvetica, sans-serif; color:#FFF; border:none; font-size:13px "/>
</label></td>
</tr>
</table>
</form>
------------------------------------------------------>
Nesse script pega o resultado do formulario e exibe-os como um link, para cada noticia
São esses links que eu quero paginar
<?php
//conexão com banco de dados
include "conexao.php";
// Recuperamos a ação enviada pelo formulário
$a = $_GET['a'];
// Verificamos se a ação é de busca
if ($a == "buscar") {
// Pegamos a palavra
$palavra = trim($_POST['palavra']);
// Verificamos no banco de dados as noticias equivalentes a palavra digitada
$sql = mysql_query("SELECT * FROM noticia WHERE noticia LIKE '%".$palavra."%' ORDER BY titulo");
// Descobrimos o total de registros encontrados
$numRegistros = mysql_num_rows($sql);
// Se houver pelo menos um registro, exibe-o
if ($numRegistros != 0) {
// Exibe o titulo da noticia como um link
while ($resultado = mysql_fetch_object($sql)) {
echo "<a href='resultados_da_busca.php?id={$resultado->id}'>{$resultado->titulo}</a>";
echo "<br /> <br />";
echo "<hr width=\"490\" align=\"center\" color=\"#CCCCCC\"/>";
}
// Se não houver registros
} else {
echo "Nenhuma noticia foi encontrada com a palavra ".$palavra."<br /><br />";
}
}
?>
------------------------------------------------------>
Quando clicar no link gerado pelo script acima, ele direciona para essa pagina
resultados_da_busca.php
Ela mostra o conteudo da noticia clicada apenas.
<?php
//conexão com o banco
include "conexao.php";
$id = (int)$_GET['id'];//recebe o id passado na url
$sql = mysql_query("SELECT * FROM noticia WHERE id={$id}") or die (mysql_error());
$resultado = mysql_fetch_object($sql);
//aki você exibe os dados
echo "<font color='#111111' face='Trebuchet MS, Arial, Helvetica, sans-serif' size='3'/><b>$resultado->titulo</b></p><font color='#444444' face='Trebuchet MS, Arial, Helvetica, sans-serif' size='2'/> <font color='#444444' face='Trebuchet MS, Arial, Helvetica, sans-serif' size='2'/><br />$resultado->noticia<center><br />$resultado->video</center><hr width='490' align='center' color='#E5E5E5'/><br />";
?>
Bom galera, espero que não seja um pouco demais, mas estou aprendendo php e ainda não consegui incluir a paginação mesmo vendo outros topicos.
valeu, abraço!!!

Paginar Resultaso De Uma Busca
Started By Eng-Haw, 14/09/2010, 22:13
1 reply to this topic
#1
Posted 14/09/2010, 22:13
#2
Posted 26/09/2010, 20:43
Galera vejam o que eu fiz agora, o problema é como encaixar direito o negócio
aparece a paginação la em baixo, mas quando vc clica vai para uma pagina vazia, mas parece que agora ja estou mais perto de conseguir, outra coisa que notei é que fala que foram encontrados 5 resultados mesmo que tenham mais que isso.
Aparece 5 que é exatamente o que eu coloquei por pagina para testar.
Se alguem poder me dar um toque eu agradeço
segue codigo modificado
aparece a paginação la em baixo, mas quando vc clica vai para uma pagina vazia, mas parece que agora ja estou mais perto de conseguir, outra coisa que notei é que fala que foram encontrados 5 resultados mesmo que tenham mais que isso.
Aparece 5 que é exatamente o que eu coloquei por pagina para testar.
Se alguem poder me dar um toque eu agradeço
segue codigo modificado
<?php include "conexao.php"; if (!isset($_GET["pagina"])) { $pagina = 1; } else { $pagina = $_GET["pagina"]; } $max=5; $inicio = $pagina - 1; $inicio = $max * $inicio; $sql=("SELECT * FROM noticia"); $query=mysql_query($sql); $total=mysql_num_rows($query); if ($total == 0) echo "<center>Nenhum registro encontrado!</center><br />"; else // Recuperamos a ação enviada pelo formulário $a = $_GET['a']; // Verificamos se a ação é de busca if ($a == "buscar") { // Pegamos a palavra $palavra = trim($_POST['palavra']); // Verificamos no banco de dados produtos equivalente a palavra digitada $sql2 = mysql_query("SELECT * FROM noticia WHERE noticia LIKE '%".$palavra."%' ORDER BY id DESC LIMIT $inicio,$max "); // Descobrimos o total de registros encontrados $numRegistro = mysql_num_rows($sql2); // Se houver pelo menos um registro, exibe-o if ($numRegistro != 0) { echo"<center><font color=\"silver\" size='2'/>".$numRegistro." resultados encontrados com a palavra \"".$palavra."\".</font><br /><br /></center>"; // Exibe os produtos e seus respectivos preços ?> <?php $i = 0; while ($resultado = mysql_fetch_object($sql2)) { // se a divisão de i com 3 sobrar 0 então pule de linha if($i % 4 == 0){ } // Exibimos o resultado echo "<a href='resultados_da_busca.php?id={$resultado->id}'>{$resultado->titulo}</a>"; echo "<br />"; echo "<br />"; echo "<hr width=\"490\" align=\"center\" color=\"#CCCCCC\"/><br />"; $i++; } // Se não houver registros } else { echo "Nenhuma noticia foi encontrada com a palavra ".$palavra."<br /><br />"; } ?> <center> <?php // Calculando pagina anterior echo "<br />"; $menos = $pagina - 1; // Calculando pagina posterior $mais = $pagina + 1; $pgs = ceil($total / $max); if($pgs > 1 ) { if($menos >0) echo "<a href=\"?pagina=$menos\" class='texto_paginacao'>Anterior</a> "; if (($pagina-4) < 1 ) $anterior = 1; else $anterior = $pagina-4; if (($pagina+4) > $pgs ) $posterior = $pgs; else $posterior = $pagina + 4; for($i=$anterior;$i <= $posterior; $i++) if($i != $pagina) echo " <a href=\"?pagina=".($i)."\" class='texto_paginacao'>$i</a>"; else echo " <strong class='texto_paginacao_pgatual'>".$i."</strong>"; if($mais <= $pgs) echo " <a href=\"?pagina=$mais\" class='texto_paginacao'>Proxima</a>"; } ?> </center> <?php }?>
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)