Ir para conteúdo

POWERED BY:

Arquivado

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

# A ©hris A #

[]==>SISTEMA DE BUSCA<==

Recommended Posts

Bom dia!!

 

To fazendo um site de venda de peças de carro online.

E to presisando de um sistema de busca tipo eu peguei um em javascript que foi mt útil so que eu testei

 

n deu mt certo que se escrevia na busca pro exemplo o nome da peças aparecia todas as peças q tinah esse nome so

que se dava um espaço e escrevia a marca tbm ele pegava todos os itens daquela marca e tbm o nome daquela peça

exemplo:

se eu pequisar por vela do ford:

aparecia

 

todos as peças do ford

e tbm a velas de todas as marcas.

 

eu queria um sistema de busca em php que tenha um campo pra o nome da peça ou o codigo e um outro campo para a escolha da marca:

que tenha as palavras chaves,a decriçao e nome da peça com um link para ela.mas

eu n quero utilizar mysql q seja num .txt msm

 

o scrpt java q eu tava usando era esse:

<html>

<head>
<title>Consulta interna</title>
</head>

<body>

<div align="center" style="width: 358; height: 97"> 
<table width="383" height="56">
   <tr> 
	 <td height="60" width="375"> 
	 <form method="GET">
	 <p align="left">
	 <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Consulta interna:</b>
	 </font><font face="Verdana, Arial, Helvetica, sans-serif"><br>
	 <font size="2"> 
	 <input type="text" name="query" size="16" style="font-size: 9 pt; color: #000000; font-family: Verdana; font-variant: small-; border: 1 solid #000000">
	 </font></font> <font face="Verdana, Arial, Helvetica, sans-serif" size="2"> 
	 <input type="submit" value="Buscar" style="font-size: 8 pt; color: #000000; font-family: Verdana; font-variant: small-caps; border: 1 solid #000000">
	 </font> 
	 </form>
	 <font color="#666666"> </font> </td>
   </tr>
</table>
<table width="383">
	<tr> 
	 <td height="0" bgcolor="#C0C0C0" width="375"></td>
	</tr>
  </table>
</div>
<div align="center" style="width: 383; height: 39"> 
  <table width="377">
	<tr> 
	  <td width="369"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
		<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 ('<center><br><form method=POST action=' + this.url + '><button id="AdvancedButton1" type="submit" name="AdvancedButton1" style="border:1px #0000FF solid;background-color:#FFFFFF"><P><b>' + this.title + '</b> </p></button><br><br><b><i><font color=#00000 faze=Arial black><b>' + this.description + '</i></b><br></font><font color=#C0C0C0 faze=Arial>__________________________________________</font>');

}



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.note01.clok.info/produtos/produtos/6871.php", "CÂMBIO E COMPONENTES", "6871 ANEL SINCRONIZADOR DA 1ª ATE 5ª MARCHA - CLARK 240V CÂMBIO E COMPONENTES AGRALE F1000 • F2000 • F4000 • D20 • ACD40 87/90 • VW6.80 • VW6.90 • AGRALE TX1200 • TX1600 TODOS 5 MARCHAS", "Montadora:<font color=#FF0000>FORD • GM • VW • AGRALE</font><br>ANEL SINCRONIZADOR DA 1ª ATE 5ª MARCHA - CLARK 240V<br>Aplicação:<br>F1000 • F2000 • F4000 • D20 • ACD40 87/90 • VW6.80 • VW6.90 • AGRALE TX1200 • TX1600 TODOS 5 MARCHAS<br>");



the_entries[1] = new entry ("http://www.note01.clok.info/produtos/produtos/102610.php", "CÂMBIO E COMPONENTES", "102610 ANEL SINCRONIZADOR DA RÉ - FSO4305 CÂMBIO E COMPONENTES AGRALE CARGO 814 • F4000 TURBO • VW 7.100 • 8.140 • AGRALE 7.0 • 7.5 • 8.5 • PUMA 7900", "Montadora:<font color=#FF0000>FORD • VW • AGRALE • PUMA</font><br>ANEL SINCRONIZADOR DA RÉ - FSO4305<br>Aplicação:<br>CARGO 814 • F4000 TURBO • VW 7.100 • 8.140 • AGRALE 7.0 • 7.5 • 8.5 • PUMA 7900<br>");



the_entries[2] = new entry ("http://www.note01.clok.info/produtos/produtos/102580.php", "CÂMBIO E COMPONENTES", "102580 ANEL SINCRONIZADOR EXTERNO DA 1ª / 2ª MARCHAS - EATON FSO4305 CÂMBIO E COMPONENTES AGRALE CARGO 814 • F4000 TURBO • VW 7.100 • 8.140 • AGRALE 7.0 • 7.5 • 8.5 • PUMA 7900", "Montadora:<font color=#FF0000>FORD • VW • AGRALE • PUMA</font><br>ANEL SINCRONIZADOR EXTERNO DA 1ª / 2ª MARCHAS - EATON FSO4305<br>Aplicação:<br>CARGO 814 • F4000 TURBO • VW 7.100 • 8.140 • AGRALE 7.0 • 7.5 • 8.5 • PUMA 7900<br>");



the_entries[3] = new entry ("http://www.note01.clok.info/produtos/produtos/102598.php", "CÂMBIO E COMPONENTES", "102598 ANEL SINCRONIZADOR INTERNO MARCHAS 1ª / 2ª - EATON FSO4305 CÂMBIO E COMPONENTES AGRALE CARGO 814 • F4000 TURBO • VW 7.100 • 8.140 • AGRALE 7.0 • 7.5 • 8.5 • PUMA 7900", "Montadora:<font color=#FF0000>FORD • VW • AGRALE • PUMA</font><br>ANEL SINCRONIZADOR INTERNO MARCHAS 1ª / 2ª - EATON FSO4305<br>Aplicação:<br>CARGO 814 • F4000 TURBO • VW 7.100 • 8.140 • AGRALE 7.0 • 7.5 • 8.5 • PUMA 7900<br>");


var entry_num = 3; 

var max_keywords = 50;

var points_title = 3;

var points_keywords =3;

var points_description = 1;

begin_search ();

</script>
</body>

Compartilhar este post


Link para o post
Compartilhar em outros sites

geralmente o script "quebra" o termo da pesquisa, elimina as partes triviais (como "o", "e"...), depois gera um SQL pra consulta +/- com essa extrutura...

Termo usado na busca: velas do ford

SELECT texto FROM tabela WHERE texto LIKE "%velas%" OR texto LIKE "%ford%" //O "do" somiu pq é trivial na busca

acho q você tem q usar um SELECT do tipo...

SELECT texto FROM tabela WHERE texto LIKE "%velas%" AND texto LIKE "%ford%" //O "do" somiu pq é trivial na busca

a alteração q você tem q fazer é pequena...

PS: nem cheguei perto de ler esse script q você postou, é muito grande e vai fazer com quer as pessoas leiam o topico e naum tenham "vontade" de responder (na verdade, bate a preguiça msm)...

Compartilhar este post


Link para o post
Compartilhar em outros sites

como eu disse, eu naum olhei o codigo q você postou na integra (muito grande)...

mas basta você procurar onde fica a query responsavel por retornar os resultados da busca...

 

Abraços

 

DEFABAFO: você disse q pegou um modelo pronto, eu sou EXTREMAMENTE CONTRA esse tipo de pratica, se você pegar um modelo, tem q ser pra você estudar o funcionamento para q você msm possa desenvolver o seu posteriormente, e se for pegar um pra estudo, começar pelos menores modelos, pra poder ir aprendendo aos poucos. um script muito grande logo de cara, todo mundo fica perdido (sem contar os erros absusdos q contem esses scripts)

o unico "defeito" do PHP, é dar muitas "brechas" pra um programador inesperiente, deixa com que codigos "errados" sejam executados... (pra isso existem as "boas proticas na programação")

Compartilhar este post


Link para o post
Compartilhar em outros sites

geralmente eu pego um codigo e através dele eu faço o meu.

mas essse por exemplo eu peguei pq n achei um modelo em php pra eu criar meu sistema de busca

mas como eu n sei mt bema lavascript eu peguei um pronto pois n precisava de mt configuraçoes.

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.