Ir para conteúdo

POWERED BY:

Arquivado

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

Tiago.Bast

Sistema de Pesquisa em MYSQL

Recommended Posts

Ola pessoal, estou com o seguinte problema, tenho 2 tabelas ( categorias e artigos ) a estrutura e a seguinte:

 

___CATEGORIAS___

IDCat

NOMECat

 

___ARTIGOS___

 

IDArtigo

CATArtigo

CREArtigo

MODArtigo

AUTArtigo

TITArtigo

TEXArtigo

 

Eu preciso criar um sistema de pesquisa que ira pegar todos campos sendo que o IDCat e CATArtigo sao iguais os valores; o meu problema é como irei colocar na pesquisa o nome da categoria e pegar todos os artigos que tenham o nome da categoria.

 

desde ja agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tiago, simplesmente relacionando as tabelas.

Teste a seguinte query:

 

SELECT a.* , c.NOMECat
FROM artigos a, categorias c
WHERE
     a.CATArtigo = c.IDCat AND
     c.NOMECat LIKE '%CategoriaX%';

Note que coloquei pra pesquisar pelo nome da categoria "CategoriaX". Basta implementar de acordo com a linguagem de programação que você irá utilizar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tiago, simplesmente relacionando as tabelas.

Teste a seguinte query:

 

SELECT a.* , c.NOMECat
FROM artigos a, categorias c
WHERE
     a.CATArtigo = c.IDCat AND
     c.NOMECat LIKE '%CategoriaX%';

Note que coloquei pra pesquisar pelo nome da categoria "CategoriaX". Basta implementar de acordo com a linguagem de programação que você irá utilizar.

 

e ae caio, seguinte!!! teria como dar uma olhada no que esta errado no meu codigo??

 

<?php
				$sql_LastArt 	 = "SELECT a.* , c.CatName ";
				$sql_LastArt 	 = "FROM ae_articles a, ae_catarticles c ";
				$sql_LastArt 	.= "WHERE  a.ArticleCat = c.CatId AND c.NOMECat LIKE '%$pesquisa%'";

					$query_LastArt		= mysql_query($sql_LastArt);

					while ($result_LastArt=mysql_fetch_array($query_LastArt)) {

					$Cat_LastArt		= $result_LastArt['a.ArticleCat'];

					$Id_LastArt		= $result_LastArt['a.ArticleId'];
					$CatName_LastArt		= $result_LastArt['c.CatName'];
					$Created_LastArt		= $result_LastArt['a.ArticleCreated'];
					$Modif_LastArt		= $result_LastArt['a.ArticleModif'];
					$Author_LastArt		= $result_LastArt['a.ArticleAuthor'];	
					$Title_LastArt 	= $result_LastArt['a.ArticleTitle'];
					$Text_LastArt		= $result_LastArt['a.ArticleText'];

					$Intro_LastArt = explode('<!-- pagebreak -->', $Text_LastArt);
					$Intro = $Intro_LastArt['0'];

			?>
               <div id="LastArticle">
               <h1 style="margin:0;"><a href="index.php?pg=vart&categoria=<?php echo $Cat_LastArt;?>&artigo=<?php echo $Id_LastArt;?>"><?php echo $Title_LastArt;?></a></h1>
           	<hr />
               <h2 style="margin:0 0 10px 0;"><span>Autor:<strong><?php echo $Author_LastArt?></strong></span> | <span>Criado em: <strong><?php echo date('d/m/Y H:i', strtotime($Created_LastArt))?></strong></span> | <span>Categoria: <strong><?php echo $CatName_LastArt?></strong></span></h2>
               <div class="artigo">
               <?php echo $Intro;?>
               </div>
			 <div class="clear"></div><!--Div Clear-->
               <a href="index.php?pg=vart&categoria=<?php echo $Cat_LastArt;?>&artigo=<?php echo $Id_LastArt;?>" style="display:block; float:right; margin:10px 25px 5px 150px; padding: 2px 8px; background:#85C226;-moz-border-radius: 5px;-webkit-border-radius: 5px;border-radius: 5px; text-decoration:none; color:#fff; "><strong style="font:14px 'Trebuchet MS', Arial, Helvetica, sans-serif; font-weight:bold; ">Leia Mais...</strong></a>	
               <div class="clear"></div><!--Div Clear-->	
               </div>
               <div class="clear"></div><!--Div Clear-->
               <?php
					}
			?>

 

 

da o seguinte erro: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in na linha "while ($result_LastArt=mysql_fetch_array($query_LastArt)) {"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tiago, teste o SELECT direto no banco e veja se o retorno é positivo. Caso for, vou mover seu tópico pra área de PHP onde irão te auxiliar no código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tiago, teste o SELECT direto no banco e veja se o retorno é positivo. Caso for, vou mover seu tópico pra área de PHP onde irão te auxiliar no código.

 

opa, consegui descobrir o erro mas tenho outra duvida como eu posso colocar nessa pesquisa as outras colunas da tabela dos artigos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tiago, o * ali no select busca todos os campos da tabela.

 

opa, cara montei esse codigo e ta dando erro de syntax so que direto funciona sabes me dizer o que pode ser???

o erro e o seguinte:

 

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 'a right join ae_catarticles b on a.ArticleCat = b.CatIdWHERE b.CatName LIKE '%a%' at line 1

 

<?php
				$sql_XXX 	 = "SELECT a.ArticleId, a.ArticleCat, a.ArticleCreated, a.ArticleModif, a.ArticleAuthor, a.ArticleTitle, a.ArticleText, b.CatId, b.CatName" ;
				$sql_XXX 	 .= "FROM ae_articles a right join ae_catarticles b on a.ArticleCat = b.CatId"; 
				$sql_XXX 	 .= "WHERE b.CatName LIKE '%$pesquisa%'";
				$sql_XXX 	 .= "OR a.ArticleId LIKE '$pesquisa'";
				$sql_XXX 	 .= "OR a.ArticleCat LIKE '$pesquisa'";
				$sql_XXX 	 .= "OR a.ArticleAuthor LIKE '%$pesquisa%'";
				$sql_XXX 	 .= "OR a.ArticleTitle LIKE '%$pesquisa%'";
				$sql_XXX 	 .= "OR a.ArticleText LIKE '%$pesquisa%'";

				}
			?>

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.