Jump to content


Eng-Haw

Member Since 07/09/2010
Offline Last Active 02/10/2010, 14:19
-----

Topics I've Started

Paginar Resultaso De Uma Busca

14/09/2010, 22:13

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:&nbsp;&nbsp;&nbsp;</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!!!

IPB Skin By Virteq