Ir para conteúdo

POWERED BY:

Arquivado

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

dream1702

Busca

Recommended Posts

Oi pessoal, tudo tranquilo?Meu sistema busca palavras chaves em um banco de dados e retorna com os resultados normalmente.Estou com uma dúvida de como como fazer o seguinte:Digamos que em meu banco esteja cadastrado pessoas e as cidades dessas pessoas.Ai temos o joazinho na cidade de cidanópolis.E outro joaozinho da cidade de branópolis.Do jeito que está se eu buscar por joaozinho ele vai trazer os dois resultados ppara mim. PERFEITO!Mas eu queria colocar um campo texto do lado, que faria o seguinte:Se eu quizesse especificar a cidade de cidanópoles, eu digitava CIDANÓPOLIS no campo 2, o sistema faria a lógica, e só mostrava o joãozinho da respectiva cidade.Seria possível?Por onde começar?Muito obrigado pessoal.Abração.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claro que tem como...só fazer dois likes em sua sql...exemplo:select * from tabela where nome like '%"& request do nome &"%' and cidade like '"& request da cidade &"'dica:faz um if antes que se cidade = "" busca apenas pelo nome...assim irá buscar todos os nomes que contém a palavra digitada!Qualquer dúvida posta ai!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado Custellinha, que bom ,parece ser fácil .

 

Mas eu me compliquei todo, foi mal...

 

Deviso algumas mudanças para pegar um tipo de palavra e outras não, graças aos amigos do forum meu codigo ficou assim.

 

ASP
'Procurarar pela primeira palavra de busca nos títulos do URL

        strSQL = strSQL & "WHERE Title LIKE '% " & RetiraAcentos(sarySearchWord(0)) & " %'"

        'Dar laços para procurarar por cada palavra de busca incorporada pelo usuário

        For intSQLLoopCounter = 0 To UBound(sarySearchWord)

                strSQL = strSQL & " OR Title LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & " %'"

                strSQL = strSQL & " OR Title LIKE '" & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & " %'"

                strSQL = strSQL & " OR Title LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & "'"

                strSQL = strSQL & " OR Title LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & ".%'"

                strSQL = strSQL & " OR Title LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & ",%'"

        strSQL = strSQL & " OR Keywords LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & " %'"

                strSQL = strSQL & " OR Keywords LIKE '" & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & " %'"

                strSQL = strSQL & " OR Keywords LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & "'"

                strSQL = strSQL & " OR Keywords LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & ".%'"

                strSQL = strSQL & " OR Keywords LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & ",%'"

        strSQL = strSQL & " OR Description LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & " %'"

                strSQL = strSQL & " OR Description LIKE '" & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & " %'"

                strSQL = strSQL & " OR Description LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & "'"

                strSQL = strSQL & " OR Description LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & ".%'"

                strSQL = strSQL & " OR Description LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & ",%'"

        Next

 

Então eu não sei muito bem como faço será que você podia dar um exemplo. O IF depois corro atrás deve ser um pouco mais fácil.

Não sei nem que nome daria ao segundo campo texto para trabalhar juntamente com o primeiro.

 

 

Muito obrigado pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

muda só la em cima...

 

'Procurarar pela primeira palavra de busca nos títulos do URL

ASP
strSQL = strSQL & "WHERE Title LIKE '%" & RetiraAcentos(sarySearchWord(0)) & "%' and cidade like '%"& Request("nome do campo cidade") & "%'"

 

qualquer dúvida poste!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Custelinha!Então:Eu add o campo cidade no BD e alterei o LIKE acima, no entanto, não consigui fazer ligação com o campo cidade com a coluna do BD.Creio que o problema seja na nomenclatura do campo texto (cidade). input name="search"Pois está igual ao nome do campo texto (nome) , ja mudei mas tbm não funcionou, eles simplesmente trabalham juntos, buscando as mesmas coisas.Se digitar apenas em um, não vem nada, se digitar só a cidade tbm nao vem nada.Não estou sabendo dar um nome para ele e fazer a ligação com a coluna cidade.Mais uma vez muito obrigadoAbração

Compartilhar este post


Link para o post
Compartilhar em outros sites

você cria um campo texto no html chamado cidadeDepois você troca ali no Request!Request("cidade")qualquer dúvida posta ai!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa!!!!!! Muito obrigado pela ajuda que você está me dando Custelinha.

 

Vamos lá!!!!

 

Eu fiz o que você disse e coloquei o seguinte código:

 

ASP
strSQL = strSQL & "WHERE Title LIKE '%" & RetiraAcentos(sarySearchWord(0)) & "%' and Cidade like '%"& Request("cidade") & "%'"

 

 

 

Ficou diferente sim , agora não é preciso digiar nos dois campos não, funfou assim:

 

(buscar nos seus respectivos campos)

 

Se eu Buscar só o Joãozinho por exemplo, vem todos Joaozinhos PERFEITO

 

Mas se eu buscar só a cidade na frente não vem todos joaozinhos daquela cidade:

 

E se eu Buscar por joãozinho em tal cidade não da diferença nenhuma ( TRAS TODOS OS JOAOZINHOS que tem no baco, como se eu tivesse digitado apenas o nome)

 

 

IMPORTANTE!!!!!!!

 

Notei que funcionou pq fiz um teste, por exemplo:

 

Coloque no nome josé a cidade CIDANÓPOLIS , e quando busquei por joaozinho em cidanópolis APARECEU O JOSÉ.

 

 

 

Ahhhh eu tentei colocar assim tbm para ver se dava diferença, (igual o código completo)

 

ASP
'Procurarar pela primeira palavra de busca nos títulos do URL

        strSQL = strSQL & "WHERE Title LIKE '%" & RetiraAcentos(sarySearchWord(0)) & "%' and Cidade like '%"& Request("cidade") & "%'"

        'Dar laços para procurarar por cada palavra de busca incorporada pelo usuário

        For intSQLLoopCounter = 0 To UBound(sarySearchWord)

                strSQL = strSQL & " OR Title LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & " %'"

                strSQL = strSQL & " OR Title LIKE '" & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & " %'"

                strSQL = strSQL & " OR Title LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & "'"

                strSQL = strSQL & " OR Title LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & ".%'"

                strSQL = strSQL & " OR Title LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & ",%'"

        strSQL = strSQL & " OR Keywords LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & " %'"

                strSQL = strSQL & " OR Keywords LIKE '" & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & " %'"

                strSQL = strSQL & " OR Keywords LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & "'"

                strSQL = strSQL & " OR Keywords LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & ".%'"

                strSQL = strSQL & " OR Keywords LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & ",%'"

        strSQL = strSQL & " OR Description LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & " %'"

                strSQL = strSQL & " OR Description LIKE '" & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & " %'"

                strSQL = strSQL & " OR Description LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & "'"

                strSQL = strSQL & " OR Description LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & ".%'"

                strSQL = strSQL & " OR Description LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & ",%'"

                strSQL = strSQL & " OR Cidade LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & " %'"

                strSQL = strSQL & " OR Cidade LIKE '" & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & " %'"

                strSQL = strSQL & " OR Cidade LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & "'"

                strSQL = strSQL & " OR Cidade LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & ".%'"

                strSQL = strSQL & " OR Cidade LIKE '% " & RetiraAcentos(sarySearchWord(intSQLLoopCounter)) & ",%'"

        Next

 

 

 

 

Será que tem aver com o IF que você disse?

 

Mais uma vez muito obrigado

Muito obrigado Amigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal,meu problema é parecido, eu acho, por isso postei aqui. É que estou começando agora e estou perdidinha...Eu queria que um usuário logado, fizesse busca de outros usuários com o perfil dele. Por exemplo:Maria tem 20 anos, gosta de mpb, é loira.João tem 40, gosta de mpb, é negro. Maria é o usuário logado.Ela quer saber se tem alguém que goste de mpb e é negro.Como fica isso? Busca de um usuário sobre outro usuário?Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

você faz uma busca simples, não tem muita ciência, você já tem a estrutura de códigos prontas, qual o resultado que aparece para você?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, eu não tenho nada.é que ainda não entendi a lógica de como um usuário logado vai buscar por outro com o mesmo perfil.Não sei como é chamado, em código, o usuário logado pra fazer a comparação com o outro, entende?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, eu não tenho nada.é que ainda não entendi a lógica de como um usuário logado vai buscar por outro com o mesmo perfil.Não sei como é chamado, em código, o usuário logado pra fazer a comparação com o outro, entende?

Bom Dia Juliana,Vou citar duas das maneiras de poder resolver isso...Quando o usuario logar no sistema, você já pega os valores retornados por ele e guarda em uma varialvel de sessao ou você faz uma nova consulta sql no sistema para que possa pegar os dados dele, caso você não os tenha guardado em nenhuma variavel.Depois que você estiver com as informações do perfil dele, você os compara com os que ja existem no banco. Exemplo:1.Usuário busca por usuário caso genero é igual genero ou raça é igual raça 2.Usuário busca por usuário caso genero é igual genero e raça é igual raçaNo caso que você falou antes, do usuario logado buscar outro com o mesmo perfil daria a 2 opção. E so fazer a consulta na query.qualquer coisa estamos ai!

Compartilhar este post


Link para o post
Compartilhar em outros sites

kessloshy,muito obrigda.Mas, entrando na prática, seria um request.session para pegar o usuário logado?

Ola de novo juliana, Para chamar a sessão seria um Session(""), exemplo: nome = Session("nome")t+, se precisar de alguma coisa estamos ai

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.