Ir para conteúdo

Arquivado

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

Carcleo

Problema com Duplicidade

Recommended Posts

Olá pessoal!

 

To fazendo uma busca da seguinte forma

 

A pessoa digita por exemplo "O que o Mario que é legal gosta?"

 

Eu separo as palavras repetidas e fica:

 

"O que Mario é legal gosta"

 

E jogo cada uma numa matriz e faço uma busca no banco de dados por cada palavra:

 

1 - Busco por "O"

2 - Busco por "Mario"

3 - Busco por "é"

4 - Busco por "legal"

5 - Busco por "gosta"

 

 

Só que na hora de imprimir o resultado, nos resultados da busca por "Mario", repete resultado da busca por "O".

 

E eu queria excluir, na verdade impedir que quando a busca chegar em "Mario", na hora de imprimir os resultados

de "Mario", os que ja extiverem sido mostrados nos resultados de "O", nao sejam mostrados de novo, e assim suscessivamente

com os resultados de "é", "legal" e "Gosta".

 

Na verdade, to criando um sistema de peguntas frequentes e preciso evitar que a cada nova palavra digitada na frase chave,

seja repetida a mesma pergunta.

 

Vai aí o Código que to usando, tem uma observação no local do erro, se alguem puder me ajudar, desde ja agradeço.

<%If REQUEST.QUERYSTRING("action") = "consultar" then  Dim busca, onde, pesq,  x, bg, DfId, DesenharTabela, cor, ModuloNome			'Declara as variaveis.  Dim laco, buscadas, considera, palavra, palavra2, pergunta, registro, NomeAutor, objRecordSetNomeAutor, objRecordSetNomeModulo  DesenharTabela = False  busca=trim(request.form("chave"))  laco=split(busca,chr(32))  x = 0  considera = true  buscadas = array()  for each palavra in laco	if x > 0 then	   for each palavra2 in buscadas		  if palavra = palavra2 then			 considera = false		  end if	   next	   if considera = true then		  redim preserve buscadas(Ubound(buscadas)+1)		  buscadas(Ubound(buscadas)) = palavra	   end if	else	   redim preserve buscadas(Ubound(buscadas)+1)	   buscadas(Ubound(buscadas)) = palavra	   x = x + 1	end if	considera = true  next  for each palavra in buscadas   ' palavra=busca(x)						'Entrega à variavel palavra, cada uma das palavras em separado para fazer a busca	palavra = replace(palavra,"a","[a,á,à,ã,â,ä,A]")	'Trata as palavras acentuadas como que sem acento ou com acenmto	palavra = replace(palavra,"e","[e,é,è,ê,ë,E]")	palavra = replace(palavra,"i","[i,í,ì,î,ï,I]")	palavra = replace(palavra,"o","[o,ó,ò,õ,ô,ö,O]")	palavra = replace(palavra,"u","[u,ú,ù,û,ü,U]")	palavra = replace(palavra,"c","[c,ç]")		onde="tbModulo.DfNomeModulo like  '%"&palavra&"%' or tbfaq.DfPergunta like  '%"&palavra&"%' or tbfaq.DfResposta  like '%"&palavra&"%'"	 'String Sql busca letra por letra   'onde="DfPergunta like  '"&palavra&"' or DfResposta  like '"&palavra&"' "	 'String Sql busca palavra por palavra  	'Cria o Select	Conectar objConecta, objRecordSet, "SELECT tbFaq.DfIdFaq, tbModulo.DfNomeModulo, tbFaq.DfIdUsuario, tbFaq.DfPergunta, tbFaq.DfResposta, tbFaq.DfVersao FROM tbFaq INNER JOIN tbModulo ON tbfaq.DfidModulo = tbModulo.DfIdModulo where " & onde & ""		if not objRecordSet.eof = true  then	'Tem registros, cria o laço para impressão no laço for	  	  if DesenharTabela = False then		 'Criando desenho tabela		 response.Write "<br><p>"		 response.Write "<table border='0' width=95% align=center cellspacing='1', cellpading='2'>"  		 response.Write "<tr bgcolor=#8193A7>"		 response.Write "<td width=50  align=center height=20><font color=#FFFFFF><b>ID</b></fonte></td>"		 response.Write "<td width=70  align=center height=20><font color=#FFFFFF><b>Modulo</b></fonte></td>"		 response.Write "<td width=320 align=center height=20><font color=#FFFFFF><b>Pergunta</b></fonte></td>"		 response.Write "<td width=100 align=center height=20><font color=#FFFFFF><b>Autor</b></fonte></td>" 		 response.Write "<td width=100 align=center height=20><font color=#FFFFFF><b>Versao</b></fonte></td>" 		 response.Write "<td width=100 align=center height=20><font color=#FFFFFF><b>Visualizar</b></fonte></td>" 		 response.Write "</tr>"  		 DesenharTabela = True		    End if		  dim faq_id, faq_modulo, faq_autor, faq_pergunta, faq_resposta, faq_versao	  Do Until objRecordSet.EOF = True		faq_id = objRecordSet("DfIdFaq")		faq_modulo = objRecordSet("DfNomeModulo")			faq_autor = objRecordSet("DfIdUsuario")			faq_pergunta = objRecordSet("DfPergunta")			faq_versao = objRecordSet("DfVersao")	  	  ' If registro <> faq_id then (nesse momento preciso evitar a repetição. to usando esse algoritimo ma num ta dando.		   if (cor = 1) then			   bg = "#E8ECEE"			   cor = 2		   else			   bg = "#d3dbde"			   cor = 1		   end if		   Conectar objConecta, objRecordSetNomeAutor, "select * from tbUsuario where DfIdUsuario = '"&faq_autor&"'"		   NomeAutor = objRecordSetNomeAutor("DfNomeUsuario")		response.Write "<tr bgcolor="&bg&">"   		   response.Write "<td width=50  height=20>"&faq_id&"</td>"		   response.Write "<td width=70  height=20>"&faq_modulo&"</td>"		   response.Write "<td width=320 height=20>"&faq_pergunta&"</td>"		   response.Write "<td width=100 height=20>"&NomeAutor&"</td>" 		   response.Write "<td width=100 height=20>"&faq_versao&"</td>" 		   response.Write "<td width=100 height=20 align=center><a href=verfaq.asp?action=1&id="&faq_id&"><img src=../imagens/ver.ico width=25 border=0></a></td>" 		   response.Write "</tr>"	   'End if	 registro = faq_id		objRecordSet.MoveNext	  Loop 	end if	  next  'Fim do laço for    if DesenharTabela = False then		response.Write "<table align=center width=200 height=50 border=2><tr><td>"		response.Write "<center>Não há resultados</center>"		response.Write "</td></tr></table>"  else		response.Write "</table>"	  END IFEND IF%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

A pessoa digita por exemplo "O que o Mario que é legal gosta?"

ei rapa que papo é esse??? :wacko: a resposta é de mulher dinheiro futebol familia e programação, eheheh http://forum.imasters.com.br/public/style_emoticons/default/joia.gif ------------------------------------------------------------------------------------quanto a sua duvida você pode usar INSTR entre as palavras da lista e remover as que já estiverem dentro de outras...

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu axo q você tem que guardar em algum lugar as frases ja usadas, e antes de mostrar o resultado da nova busca verificar se a frase ja foi mostrada

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.