Jump to content


Photo

Sistema De Busca Interna No Site


  • Faça o login para participar
16 replies to this topic

#1 dioneramone

dioneramone

    Turista

  • Usuários
  • 33 posts
  • Sexo:Masculino

Posted 12/04/2007, 14:44

Olá!
Como eu posso faze um sistema de busca no meu site?

é o seguinte:
É um monte de lei.. dai eu queria por exemplo: se a pessoa quer saber as leis sobre a "agua" dai ela digita "agua" no buscar, i aparece todas leis relacionadas a agua.

Como eu poderia faze isso? De um jeito bem simples..

Espero respostas..
Obrigado!

#2 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 12/04/2007, 14:51

Bom, é tudo feito via MySQL?

Se for, utilize o seguinte SQL:

<?
#$palavra = $_POST['palavra'];
$palavra = "agua";

$sql = mysql_query("SELECT * FROM tabela WHERE campo LIKE '%".$palavra."%'") or die(mysql_error());

echo "Foram encontrados <b>".mysql_num_rows($sql)."</b> resgistros com a palavra <b>".$palavra."</b><br><hr>\n";

while($c = mysql_fetch_array($sql)) {

echo $c['campo'] . "<br>\n";

}
?>


Bem simples.

Até mais ^_^

Edição feita por: _Dudu_1533, 12/04/2007, 14:51.

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#3 Nightwalker

Nightwalker

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Não informado

Posted 08/05/2007, 20:04

Mas, tpw... _Dudu_1533...

As páginas não tem q tah cadastradas....?

E como se programa em SQL para web? Qual ambiente se usa? O ambiente pode ser no Dreamwaever?

Desculpe as perguntas, mas eu sou Leigo... =P

#4 silici0

silici0

    ?

  • Usuários
  • 902 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:PHP, MySQL, XHTML, CSS, AJAX, JavaScript, Objective-C, Python, Games ... #geek

Posted 08/05/2007, 20:08

é MySQL, se programa em PHP para buscar os dados em bases de dados MySQL, geralmente os servidores são APACHE com MODULOS de PHP (para rodar o php CLARO!) e MySQL para guardar os dados em bases de dados.
Você programar em PHP com o DreamWeaver, notepad e zilhões de outros editores...

AS páginas tem que estar 'cadastradas' sim, isso quer dizer, salvas em algum tipo de banco de dados.

Abraços
Procurando freelancer
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .

#5 Nightwalker

Nightwalker

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Não informado

Posted 09/05/2007, 09:47

vlw silici0,

Vou dar uma estudada sobre isso...

vlw...

#6 silici0

silici0

    ?

  • Usuários
  • 902 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:PHP, MySQL, XHTML, CSS, AJAX, JavaScript, Objective-C, Python, Games ... #geek

Posted 09/05/2007, 09:52

disponha,

Bom estudos
Procurando freelancer
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .

#7 Sadness

Sadness

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 25/06/2008, 02:06

Olá gente, desculpem se não puder ressucitar tópicos, pois eu achei que seria desnecessário criar um novo se já tem esse aqui com a dúvida da busca hehe, caso não possa, favor deletar minha resposta =/....

Bom, Ao usar o código descrito pelo amigo aí em cima, funciona ok, retorna a seguinte mensagem: Foram encontrados 20 resgistros com a palavra Camisas...

Eu só queria que me dessem uma força, em como fazer pra mostrar os links resultantes da busca, pode ser? desculpem por minha pergunta tão boba, mas é que estou migrando do ASP para PHP e muita coisa me deixa confuso ainda hahaha.

Vlw galera, abraços a todos.

#8 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 25/06/2008, 10:56

depende de como você está exibindo a página cara!

mostre o código de como está listando os resultados obtidos, e outra coisa, você mostra os registros em alguma página por exemplo

camisas.php?cor=verde

se for, é só co-relacionar as paradas

<a href="camisas.php?cor="<? echo $cor;?>"">Camisa<?echo $cor;?>, sei lá, varia de como você quer^^

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#9 Sadness

Sadness

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 25/06/2008, 12:41

Maykel, mas é exatamente isso que quero hehe, listar as respostas obtidas. No caso o sistema só informa que foram encontrados resultados, mas não os lista.
E minha página de resultados de busca é exatamente este códido informado pelo amigo aqui no post hehehe com adição de um simples form.

hehe grato pela ajuda.

#10 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 25/06/2008, 12:54

mas ali no código postado lá em cima já deveria trazer os resultados com isso:

while($c = mysql_fetch_array($sql)) {

echo $c['campo'] . "<br>\n";

}

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#11 Sadness

Sadness

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 25/06/2008, 15:45

Pois é mas não está aparecendo a lista de resultados :(
Será que alguem pode me recomendar um tutorial de sistema de busca interna? Mas um sistema como este, por favor.

Grato a todos.

#12 maximobantim

maximobantim

    Novato no fórum

  • Usuários
  • 16 posts
  • Sexo:Masculino
  • Localidade:Brasília

Posted 28/08/2008, 15:47

COPIE E COLE NO BLOCO DE NOTAS (POR EXEMPLO)

<HTML><HEAD><TITLE>::Busca::</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<META content="MSHTML 6.00.2716.2200" name=GENERATOR></HEAD>
<BODY>
<DIV style="WIDTH: 358px; HEIGHT: 97px" align=center>
<TABLE height=56 width=383>
  <TBODY>
  <TR>
	<TD width=375 height=60>
	  <FORM method=get>
	  <P align=left><FONT face="Verdana, Arial, Helvetica, sans-serif" 
	  size=2><B>Consulta interna:</B> </FONT><FONT 
	  face="Verdana, Arial, Helvetica, sans-serif"><BR><FONT size=2><INPUT 
	  style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-SIZE: 9pt; BORDER-LEFT: #000000 1px solid; COLOR: #000000; BORDER-BOTTOM: #000000 1px solid; FONT-FAMILY: Verdana" 
	  size=16 name=query> </FONT></FONT><FONT 
	  face="Verdana, Arial, Helvetica, sans-serif" size=2><INPUT style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-SIZE: 8pt; BORDER-LEFT: #000000 1px solid; COLOR: #000000; BORDER-BOTTOM: #000000 1px solid; FONT-FAMILY: Verdana; FONT-VARIANT: small-caps" type=submit value=Buscar> 
	  </FONT></FORM><FONT color=#666666></FONT></P></TD></TR></TBODY></TABLE>
<TABLE width=383>
  <TBODY>
  <TR>
	<TD width=375 bgColor=#c0c0c0 height=0></TD></TR></TBODY></TABLE></DIV>
<DIV style="WIDTH: 383px; HEIGHT: 39px" align=center>
<TABLE width=377>
  <TBODY>
  <TR>
	<TD width=369><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
	  <script language="">

function kw_list ()

{

this.keywords = new Array ();

this.num_words = 0;

this.query = "";

this.original_query = "";

this.query_length = 0;

this.possible_points = 0;

this.multiple = points_title + points_keywords + points_description;

this.get_words = get_query;

this.no_query = no_query_found;

}



function get_query ()

{

this.query = top.location.search.substring (top.location.search.indexOf ('=') + 1);

while ((the_plus = (this.query.indexOf ("+", 0))) != -1)

{

this.query_length = this.query.length;

this.query = this.query.substring (0, the_plus) + " " + this.query.substring (the_plus + 1);

}

this.original_query = unescape (this.query);

this.query = this.original_query.toLowerCase ();

this.query_length = this.query.length; 

if (this.query != "")

{

var query_pointer = 0;

var end_word = 0;

var at_end = 0;

while ((this.num_words <= (max_keywords - 1)) && (! at_end))

{

end_word = this.query.indexOf (" ", query_pointer);

if (end_word == query_pointer)

query_pointer++;

else

{

if (end_word >= (this.query_length - 1))

at_end = 1;

if (end_word != -1)

this.keywords[this.num_words] = (this.query.substring (query_pointer, end_word)).toLowerCase ();

else

{

this.keywords[this.num_words] = this.query.substring (query_pointer, this.query_length);

at_end = 1;

}

this.num_words++;

if (query_pointer != -1)

query_pointer = end_word + 1;

if (query_pointer > (this.query_length - 1))

at_end = 1;

}

}

if (this.num_words == 0)

return (0);

else

{

this.possible_points = this.multiple * this.num_words;

return (1);

}

}

else

return (0);

}



function no_query_found ()

{

document.writeln ('<link rel="stylesheet" href="gp.css">');

document.writeln ('<CENTER><P>Pesquisa em branco.</P></CENTER>');

}

function entry (url, title, keywords, description)

{

this.url = url;

this.title = title;

this.keywords = keywords;

this.description = description;

this.points = 0;

this.search_entry = find_keyword;

this.print_entry = print_result;

}

function find_keyword (the_word)

{

var the_title = this.title.toLowerCase ();

var the_keywords = this.keywords.toLowerCase ();

var the_description = this.description.toLowerCase ();

if ((the_title.indexOf (the_word)) != -1)

this.points += points_title;

if ((the_keywords.indexOf (the_word)) != -1)

this.points += points_keywords;

if ((the_description.indexOf (the_word)) != -1)

this.points += points_description;

}



function print_result (possible_points)

{

document.writeln ('<A HREF="' + this.url + '" target="meio">' + this.title + '</A> - ' + this.description + '<br>');

}



function no_entry_printed (the_query)

{

document.writeln ('<link rel="stylesheet" href="gp.css">');

document.writeln ("<CENTER><P> Não há ocorrencia da palavra <U><B>" + the_query + "</B></U>.</P></CENTER>"); 

}



function print_intro (the_query)

{

document.writeln ("<CENTER><P>Os resultados da pesquisa por <U><B>" + the_query + "</B></U> são:</P></CENTER>"); 

}

function begin_search ()

{

var key_list = new kw_list;

var entry_printed = 0;

if (! key_list.get_words ())

key_list.no_query ();

else

{

var counter = 0;

var counter2 = 0;

for (counter = 0; counter < entry_num; counter++)

for (counter2 = 0; counter2 <= (key_list.num_words - 1); counter2++)

the_entries[counter].search_entry (key_list.keywords[counter2]);

for (counter = key_list.possible_points; counter > 0; counter--)

{ 

for (counter2 = 0; counter2 < entry_num; counter2++)

{

if (counter == the_entries[counter2].points)

{

if (entry_printed != 1)

{

entry_printed = 1;

print_intro (key_list.original_query);

}

the_entries[counter2].print_entry (key_list.possible_points);

}

}

}

if (! entry_printed)

no_entry_printed (key_list.original_query);

}

}

the_entries = new Array ();

//aqui vai as entradas para a pesquisa

the_entries[0] = new entry ("http://www.megamaniacs.cjb.net", "Mega Maniacs", "ressentimento, morte, ressentimento e morte", "Aqui é a descrição do site.<br>");

the_entries[1] = new entry ("http://www.seuendereco.com.br/links.htm","Código do site Animanix","desenhos, ikki, IkkiNet, IkkiNET, SSJ_Clan, SSJ, afiliados, aliados, amigos, afilia-se","Conheça todos nossos amigos afiliados com a HP.<br>");

//abaixo vai o número de entradas existentes

var entry_num = 2; //aumenta de acordo com as obcoes de busca no caso 2 ate agora

var max_keywords = 20; //aumenta de acordo com as obcoes de busca no caso 2 ate agora

var points_title = 2; //aumenta de acordo com as obcoes de busca no caso 2 ate agora

var points_keywords = 2; //aumenta de acordo com as obcoes de busca no caso 2 ate agora

var points_description = 1;

begin_search ();

</SCRIPT>
	  </FONT></TD></TR></TBODY></TABLE></DIV>
<P>&nbsp;</P>
<P>&nbsp;</P></BODY></HTML>

Edição feita por: lwirkk, 28/08/2008, 16:40.
Adicionado a tag [code]/[codebox] para melhor visualização do código-fonte.


#13 Déby Thomaz

Déby Thomaz

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Feminino
  • Localidade:Itatiba-SP

Posted 21/11/2008, 14:50

Bom, é tudo feito via MySQL?

Se for, utilize o seguinte SQL:

<?
#$palavra = $_POST['palavra'];
$palavra = "agua";

$sql = mysql_query("SELECT * FROM tabela WHERE campo LIKE '%".$palavra."%'") or die(mysql_error());

echo "Foram encontrados <b>".mysql_num_rows($sql)."</b> resgistros com a palavra <b>".$palavra."</b><br><hr>\n";

while($c = mysql_fetch_array($sql)) {

echo $c['campo'] . "<br>\n";

}
?>


Bem simples.

Até mais ^_^



Mas,
e se por acaso eu quizer que a pessoa digite qualquer palavra e venha o resultado que contenha aquelas palavras que ela deseja pesquisar, mas que não estejam em somente um determinado campo.... essa palavra poderia ser qualquer uma e estar em qualquer campo, por exemplo. :huh:
E mais ainda: como eu deveria fazer para que além de me mostrar quantos registros têm, a pesquisa mostrasse todos esses registros??

Já agradesso a ajuda!
:)

#14 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 21/11/2008, 15:00

para fazer pesquisas em mais de um campo, só usar virgula nas tabelas.

e para mostrar os resultados, só dar um echo com while!

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#15 Déby Thomaz

Déby Thomaz

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Feminino
  • Localidade:Itatiba-SP

Posted 24/11/2008, 12:39

Mas, aqui >>>> #$palavra = $_POST['palavra'];
$palavra = "agua";

Ele está determinando qual palavra deve ser buscada, certo? Mas, se eu quizer uma busca que venha o resultado de todos o arquivos que contenha uma determinada letra (por exemplo) que a pessoa digitou, ou seja, qualquer palavra, desde de uma letra, sem determinar qual deverá ser digitada para ser encontrado no meu banco.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq