Ir para conteúdo

POWERED BY:

Arquivado

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

Marcos_enghaw

[Resolvido] Busca no mysql para retornar url da noticia

Recommended Posts

Bom vou tentar explicar e postar o codigo

 

Tenho uma pagina que faz a busca no banco de dados que funciona perfeitamente, ela retorna o titulo da noticia e seu conteudo, porem ao invez disso gostaria que a busca só retornasse um LINK do id da noticia, dai o usuario clika e ve apenas aquela noticia.

 

Segue o codigo

 

----- Esse é o formulario -------------------------------------------------------------------------------

 

<form name="frmBusca" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>?a=buscar" >

<table width="220" border="0" cellspacing="0" cellpadding="0">

<tr height="33px">

<th width="72" scope="col">Busca no site:</th>

<th width="115" scope="col"><label>    

<input name="palavra" type="text" id="palavra" size="10" style="border:none" height="15"/>

</label></th>

<th width="33" scope="col"><label>

<input name="ok" type="image" id="ok" src="imagens_site/ok.gif" onclick="Submeterbusca()" align="middle"/>

</label></th>

</tr>

</table>

</form>

 

--- Aqui começa a busca ------------------------------------------------------------------------------

 

<?php

 

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 produtos equivalente 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 os produtos e seus respectivos preços

while ($resultado = mysql_fetch_object($sql)) {

 

echo "<font color='#444444' face='Trebuchet MS, Arial, Helvetica, sans-serif' size='2'/>Resultados da busca</font><br /><br /><font color='#111111' face='Trebuchet MS, Arial, Helvetica, sans-serif' size='3'/><b><br />$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='400' align='center' color='#E5E5E5'/><br />";

}

// Se não houver registros

} else {

echo "Nenhuma noticia foi encontrada com a palavra ".$palavra."<br /><br />";

}

}

 

?>

 

--- O banco de dados das noticias ----------------------------------------------------------------------

 

CREATE TABLE IF NOT EXISTS `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=16 ;

 

 

INSERT INTO `noticia` (`id`, `titulo`, `sessao`, `noticia`, `video`, `data_hora`, `ip`, `publicado`) VALUES

(13, 'a', 'noticias', '<p>a</p>', '', '2010-05-04 10:01:00', '127.0.0.1', 'S'),

(14, 'b', 'artigos', '<p>b</p>', '', '2010-05-04 10:02:00', '127.0.0.1', 'S'),

(15, 'c', 'artigos', '<p>c</p>', '', '2010-05-04 10:03:00', '127.0.0.1', 'S');

 

------ O arquivo de conexão com o banco (conexao.php)----------------------------------------------

 

<?php

$errosgbd="

<html>

<title>Erro de SGBD</title>

<body>

<center>

<h1><font color=\"red\">

Ocorreu um erro no SGBD</font>

</h1>

<h3>Contacte o DBA</h3>

</center>

</body>

</html>";

 

$errobanco="

<html>

<title>Erro no Banco</title>

<body>

<center>

<h1><font color=\"red\">

Ocorreu um erro no Banco</font>

</h1>

<h3>Contacte o DBA!</h3>

</center>

</body>

</html>";

 

 

$conexao=@mysql_connect("localhost","root","") or die ($errosgbd);

 

 

 

$banco=@mysql_select_db("manoel",$conexao) or die ($errobanco);

 

 

?>

 

----------------------------------------------------------------------------------------------

 

Bom galera, espero que não seja um pouco demais.

Uma ótima semana a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

dentro do seu while você coloca a url da página q você ker exibir passando o id da noticia

while ($resultado = mysql_fetch_object($sql)) { 
   echo "<a href='pagina_exibicao_noticia.php?id={$resultado->id}'>{$resultado->titulo}</a>";
}

e na pagina_exibicao_noticia.php

 

<?php
$conexao = mysql_connect("localhost","root","") or die (mysql_error()); 
$banco = mysql_select_db("manoel",$conexao) or die (mysql_error());
$id = $_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  
?>
espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caraca, caraca, caraca :D http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Eu nunca fui ajudado de forma tão ra´pida e facil na minha vida

hehehehehe

 

Victor muito obrigado mesmo fera!

 

E precisando de alguma coisinha estamos ai tambem, não to aqui só pra ser ajudado

 

Tenho bons conhecimentos com Photoshop e Corel Draw, priogramação to apenas começando, se você precisar me da um toque.

 

Tudo de bom Abraço!!!

 

PS: Sou novo no foruúm e não sei tem como eu colocar aqui como resolvido? não sei como funciona.

Se tiver mer avisem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vixi ocorreu um erro inexperado aqui

 

na pagina_exibicao_noticia.php se eu fizer a busca nela acontece o seguinte erro, porem só quando faço a busca, quando exibe os resultados é normal.

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

 

Erro de sintaxe, porem não consigo ver o maldito

 

segue codigo

 

<?php

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 produtos equivalente 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 os produtos e seus respectivos preços
		while ($resultado = mysql_fetch_object($sql)) { 
   echo "<a href='pagina_exibicao_noticia.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 />";
	}
}

?>
<?php
include "conexao.php";
$id = $_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 />";  
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos lá.. qual query falhou?

essa:

$sql = mysql_query("SELECT * FROM noticia WHERE noticia LIKE '%".$palavra."%' ORDER BY titulo");
ou essa:

$sql = mysql_query("SELECT * FROM noticia WHERE id={$id}") or die (mysql_error());
?

 

provavelmente, a segunda.

Se não tiver lá em cima id=...

 

ela vai falhar, por erro de sintaxe mesmo, pois vai ficar:

... WHERE id =
coloca o seguinte:

$id = (int)$_GET['id'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

CARACA, CARACA ,CARACA, DINOVO

HEHEHEHEHEHE

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

:D :lol: :)

 

 

Muito obrigado mais uma vez, vocês são os melhores.

 

Um otimo final de semana a todos.

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.