Ir para conteúdo

POWERED BY:

Arquivado

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

Loko da Web

[Resolvido] Busca pela palavra exata

Recommended Posts

Boa tarde!!!

 

Tenho um form de busca, o problema é o seguinte:

 

- O usuario digita por exemplo a letra A, vai ser listado todos os registros que contém a letra A.

- Acontece tbem, de quando digitar vermelho, vai listado registro que contem a palavra vermelho, como: rio vermelho, camisa vermelho,...

- O que eu quero é que quando o usuario digitar por exemplo Rio Vermelho, vai ser listado registro que contem exatamente essa palavra, ou seja rio vermelho,...

 

Meu select:

 

"SELECT * FROM fotos WHERE ( nome LIKE '%"&preparaPalavra(palavra(0))&"%' ) "&tipos&""

Compartilhar este post


Link para o post
Compartilhar em outros sites

"SELECT * FROM fotos WHERE (nome = '"&preparaPalavra(palavra(0))&"') "&tipos&""

 

Abraços..

Compartilhar este post


Link para o post
Compartilhar em outros sites

É assim... quando você usa o "=" ao inves do like.. ele procura EXATAMENTE oq você digitou...

 

Ou seja.. se você tem a frase "Eu gosto do rio vermelho"... e manda ele buscar "Rio vermelho" com o "=".. ele nao vai trazer NADA... ele só traria a resposta se a frase fosse APENAS "Rio vermelho"....

 

Com o Like... temos as opções de buscar frases que começam com a palavra, que contenham a palavra ou que terminem com a palavra...

 

Então defina primeiro qual o tipo de busca que você qr....

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

É assim... quando você usa o "=" ao inves do like.. ele procura EXATAMENTE oq você digitou...

 

Ou seja.. se você tem a frase "Eu gosto do rio vermelho"... e manda ele buscar "Rio vermelho" com o "=".. ele nao vai trazer NADA... ele só traria a resposta se a frase fosse APENAS "Rio vermelho"....

 

Com o Like... temos as opções de buscar frases que começam com a palavra, que contenham a palavra ou que terminem com a palavra...

 

Então defina primeiro qual o tipo de busca que você qr....

 

Abraços...

Mas, eu fiz isso... no meu bd tem um campo nome, nele tem registros como por exemplo Hellboy, digitei conforme esta no bd, e não me retornou nenhum resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você tem uma palavra tipo "Darkdemo" no BD.. e você faz

Nome = "Darkdemo"
SELECT Nome FROM Tabela WHERE Nome = '" & Nome & "'"

Ele tem que funcionar direito...

 

De um Response.Write na sua SQL e veja oq ele está levando ao Bd..

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

se tiver só "Hellboy" ele acha, mais se tiver "Hellboy - O Filme" fica complicado, então siga atenciosamente as instruções do Dark

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você tem uma palavra tipo "Darkdemo" no BD.. e você faz

Nome = "Darkdemo"
SELECT Nome FROM Tabela WHERE Nome = '" & Nome & "'"

Ele tem que funcionar direito...

 

De um Response.Write na sua SQL e veja oq ele está levando ao Bd..

 

Abraços...

Putz... saca só. Digitei Hellboy

 

SELECT * FROM fotos WHERE (nome = 'h[e,é,è,ê]llb[o,ó,ò,õ,ô,ö]y')

Então, troquei o

 

'"&preparaPalavra(palavra(0))&"'

pela

 

'"&trim(request.querystring("pesq"))&"'

Dessa forma, funcionou direito 100 %...mas agora eu nao sei como aplicar a replace dos acentos, pois antes eu tinha, pois agora tive de modificar... sera que tem como aplicar replace nesse caso da palavra exata ?????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça uma varredura na palavra digitada toda.. caso encontre acentuação.. você subistitui o caracter...

 

Utilize a função MID() para isso..

 

Abraços..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça uma varredura na palavra digitada toda.. caso encontre acentuação.. você subistitui o caracter...

 

Utilize a função MID() para isso..

 

Abraços..

Beleza...mais uma coisa, estava pensando em dar opções pro usuario escolher de que forma ira pesquisar, ou seja, na pagina do form teria duas opções em radio:

 

- Palavra Exata e Qualquer Palavra

- Entao conforme selecionou a pagina anterior, ira ser imprimido o resultado conforme o usuario escolheu.

- De que forma ficaria isso ?

 

Lembrando que ja tenho a palavra exata, mas como ficaria para qualquer palavra ????

 

Set RS= Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM fotos WHERE (nome = '"&trim(request.querystring("pesq"))&"') "&tipos&""

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ué.. o "qualquer palavra" seria o Like

 

SELECT * FROM Tabela WHERE Campo LIKE '%" & Palavra & "%'"

Abraços..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ué.. o "qualquer palavra" seria o Like

 

SELECT * FROM Tabela WHERE Campo LIKE '%" & Palavra & "%'"

Abraços..

 

KKKK...que zuado, isso eu sei,... o problema é que nao sei como implementar dois selects.

 

Set RS= Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM fotos WHERE (nome = '"&trim(request.querystring("pesq"))&"') "&tipos&""
OR ou ELSE,.... ?????
SELECT * FROM Tabela WHERE Campo LIKE '%" & Palavra & "%'"

E como faço, pra quando o usuario escolheu uma das opções seja acionado ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se minhas respostas são zuadas, não precisa de minha ajuda...

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

if (radio exata = true) then

....sql exata

else

....sql qualquer palavra

end if

 

Outra observação!!!

 

Se não deseja respostas que na sua concepção são zuadas, seja mais exato na pergunta, pois a pergunta que ta vaga, você deixou para interpretação de quer ler.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se minhas respostas são zuadas, não precisa de minha ajuda...

 

Abraços...

Cara... não foi isso que eu quis dizer, me interpretou mal. Estava brincando, imagine se eu vou desconsiderar sua ajuda, sendo que você me ajudou um monte até agora, só se eu for um retardado pra fazer uma idiotice dessa. Se tem uma coisa que eu não sou é egoista, se uma pessoa me ajuda eu agradeço de verdade, e mesmo que ajuda não tenha a minha necessidade, eu agradeço a intenção. Então Dark, fica de boa, né cara !!!! Agora que esta explicado... espero que você não tenha uma má impressão da minha pessoa.

 

if (radio exata = true) then

....sql exata

else

....sql qualquer palavra

end if

Só mais uma coisa o que seria aquele "radio exata" ?????

Compartilhar este post


Link para o post
Compartilhar em outros sites

o request do seu input radio da pagina que contem seu form.

 

if request("nomeDOseuRADIO") = "verifique o valor que ele esta trazendo(geralmente é true)" then

ficara assim
if request("teste") = true then

Lembre-se que o request tem que trazer o valor do radio escolhido e tome cuidado para não inverter os selects.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

o request do seu input radio da pagina que contem seu form.

 

if request("nomeDOseuRADIO") = "verifique o valor que ele esta trazendo(geralmente é true)" then

ficara assim
if request("teste") = true then

Lembre-se que o request tem que trazer o valor do radio escolhido e tome cuidado para não inverter os selects.

 

Abraços

filipe, não esta dando certo...acho que sou eu que estou fazendo errado. O problema é que nao esta retornando nenhum resultado. Veja como eu fiz....

 

form de busca

<tr> 
<td class="text">Buscar:</td>
<td> </td>
<td align="left"><input class="text" type="text" name="pesq" size="70"></td>
<td> </td>
<td><input type="submit" name="Submit" value="Enviar" class="text"></td>
<td> </td>
</tr>
<tr><td colspan="4" class="text">
<input type="radio" name="busca" value="palavraexata" checked>Palavra Exata<br>
<input type="radio" name="busca" value="qualquerpalavra">Qualquer Palavra
</td></tr>

resultado

Set RS= Server.CreateObject("ADODB.Recordset")
if request("busca") = true then
sql = "SELECT * FROM fotos WHERE (nome = '"&trim(request.querystring("pesq"))&"') "&tipos&""
else
sql = "SELECT * FROM fotos WHERE ( nome LIKE '%"&preparaPalavra(palavra(0))&"%' ) "&tipos&""
end if
RS.Open SQL, conn, 3

variaveis

pesq = trim(request.querystring("pesq"))
palavra = Split(Trim(Request.QueryString("pesq")), " ")
busca=request.form("busca")
busca = trim(request.querystring("busca"))
palavra = Split(Trim(Request.QueryString("busca")), " ")

Uma coisa, como o select ira saber o valor de cada radio, por exemplo, coloquei um value nas duas radios pra dar referencia (primeiro-palavraexata, segundo-qualquerpalavra), dessa forma ele nao retorna nenhum resultado. Mas, se eu tirar o value, ele sempre me retorna o mesmo resultado de qualquer das opções.

 

Entao, de que forma é feito isso, pra quando selecionar umas das opções, sera acionado aquela opção que o usuario selecionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom vamos la,

 

busca é o nome do radio certo ?

 

de um response.write na pagina na variavel request("busca") em todas as situações de escolha e posta aqui para nos.

 

Abraços

 

Exemplo:

com o radio selecionado "busca exata" e ele selecionado com "busca qualquer palavra"

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom vamos la,

 

busca é o nome do radio certo ?

 

de um response.write na pagina na variavel request("busca") em todas as situações de escolha e posta aqui para nos.

 

Abraços

 

Exemplo:

com o radio selecionado "busca exata" e ele selecionado com "busca qualquer palavra"

Isso, o nome do radio é busca,... agora me desculpe a ignorancia, mas não entendi bem o que devo fazer, fiquei confuso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu um response.write na response.write request("busca")

 

primeiro selecione o "palavra exata" e veja o que o response.write request("busca") te traz de resultado depois faça isto com a outra opção q"ualquer palavra" e veja o que response.write request("busca") te traz de resultado e posta aqui no forum.

 

verifica tambem se sua tag form esta com method="post"

 

abraços

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.