Ir para conteúdo

POWERED BY:

Arquivado

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

Carlos Moreira

Como buscar mais palavras?

Recommended Posts

Olá pessoal eu tenho o seguinte código no meu Select:

 

"SELECT * FROM instituicoes where titulo [b]like'"&titulo&"%'[/b] and aprovado <> 0 order by titulo

 

ele faz uma busca no banco com titulos por exemplo se eu tenho uma empresa chamada "João Informática" se eu coloco apenas o J ele ja acha isso esta funcionando certinho!

 

Mas se eu coloco Joao sem a cento ele não acha.

 

E tambem se eu coloco Informática ele nao acha só esta buscando a primeira palavra.

 

Como posso fazer com que ele ache com a pessoa digitando apenas J ou Joao sem acento ou Informatica???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carlos,

 

Qual banco de dados voce esta usando?access?

 

Se sim, tem uma funcao que eu uso que ela resolve esses tipos de problema.

Foi a unica solução que eu achei

 

ASP
Function FormataBusca( Texto )
                Dim n, NovoTexto, valorASC
                NovoTexto = ""
                for n = 1 to len( Texto )
                        valorASC = asc( mid( Texto, n, 1 ) )
                select case valorASC
                        case 39: NovoTexto = NovoTexto & "''"
                        case 65: NovoTexto = NovoTexto & "[ÁÀÂÄÃA]"
                        case 67: NovoTexto = NovoTexto & "[ÇC]"
                        case 69: NovoTexto = NovoTexto & "[ÉÈÊËE]"
                        case 73: NovoTexto = NovoTexto & "[ÍÌÎÏI]"
                        case 79: NovoTexto = NovoTexto & "[ÓÒÔÖÕO]"
                        case 85: NovoTexto = NovoTexto & "[ÚÙÛÜU]"
                        case 97: NovoTexto = NovoTexto & "[áàâäãa]"
                        case 99: NovoTexto = NovoTexto & "[çc]"
                        case 101: NovoTexto = NovoTexto & "[éèêëe]"
                        case 105: NovoTexto = NovoTexto & "[íìîïi]"
                        case 111: NovoTexto = NovoTexto & "[óòôöõo]"
                        case 117: NovoTexto = NovoTexto & "[úùûüu]"
                        case else
                        if valorASC > 31 and valorASC < 127 then
                                NovoTexto = NovoTexto & chr( valorASC )
                        else
                                NovoTexto = NovoTexto & "_"
                        end if
                end select
                next
       
        FormataBusca = NovoTexto
        End Function

 

e no seu select coloque assim

SELECT * FROM instituicoes where titulo like'"& FormataBusca(titulo) &"%' and aprovado <> 0 order by titulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou fazendo assim mas nao funcionou ve se esta certo?

 

ASP
<%
Function FormataBusca( Texto )
Dim n, NovoTexto, valorASC
NovoTexto = ""
for n = 1 to len( Texto )
valorASC = asc( mid( Texto, n, 1 ) )
select case valorASC
case 39: NovoTexto = NovoTexto & "''"
case 65: NovoTexto = NovoTexto & "[ÁÀÂÄÃA]"
case 67: NovoTexto = NovoTexto & "[ÇC]"
case 69: NovoTexto = NovoTexto & "[ÉÈÊËE]"
case 73: NovoTexto = NovoTexto & "[ÍÌÎÏI]"
case 79: NovoTexto = NovoTexto & "[ÓÒÔÖÕO]"
case 85: NovoTexto = NovoTexto & "[ÚÙÛÜU]"
case 97: NovoTexto = NovoTexto & "[áàâäãa]"
case 99: NovoTexto = NovoTexto & "[çc]"
case 101: NovoTexto = NovoTexto & "[éèêëe]"
case 105: NovoTexto = NovoTexto & "[íìîïi]"
case 111: NovoTexto = NovoTexto & "[óòôöõo]"
case 117: NovoTexto = NovoTexto & "[úùûüu]"
case else
if valorASC > 31 and valorASC < 127 then
NovoTexto = NovoTexto & chr( valorASC )
else
NovoTexto = NovoTexto & "_"
end if
end select
next
 
FormataBusca = NovoTexto
End Function
 
%><%
'cidade = Request.QueryString("cidade")
Titulo = Request.QueryString("titulo")
pag = Request.QueryString("pag") 'página atual
 
Call abre_conexao(ConnString,Conn)
Set RS = Server.CreateObject("ADODB.Recordset")
msql = "SELECT * FROM instituicoes where titulo like'"& FormataBusca(titulo) &"%' and aprovado <> 0 order by titulo and patrocinador"
Set RS.activeconnection = Conn 'Verifica se tem registro, se nao tiver exibe que não tem
RS.Open msql, Conn,3,3
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais carlos, deu pal a hora que você executou?tenta assim:

"SELECT * FROM instituicoes where titulo like '"& FormataBusca(titulo) &"%' and aprovado <> 0 order by titulo and patrocinador"

Compartilhar este post


Link para o post
Compartilhar em outros sites

"SELECT * FROM instituicoes where titulo like '%"&titulo&"%' and aprovado <> 0 order by titulo and patrocinador"

 

e coloque a meta tag:

<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

 

pode ajudar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora deu certo 1 parte essa:

 

se eu buscar assim: Laboratorio e no banco estiver Laboratório ele ja esta pegando certinho.

 

Só faltou por exemplo:

 

Laboratório São Pedro

 

se eu colocar apenas São Pedro ou Pedro ele achar.

 

Como faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

a SQL q o ted postou acha do jeito que você quer eu acho!tenta ela ai...qualquer dúvida posta!abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

VALEUUU GALERAaaaa

 

Deu certo assim:

 

msql = "SELECT * FROM instituicoes where titulo like '%"&FormataBusca(titulo)&"%' and aprovado <> 0 order by titulo and patrocinador"

Coloquei o COD que deu certo pra galera pegar

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.