Ir para conteúdo

POWERED BY:

Arquivado

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

[rush_jeff_rulez]

Fazendo uma busca simples

Recommended Posts

Eae galera uhuuuuu !!!

 

Seguinte pesso ... montei uma busca aqui neh ... simplesinha ... codigo:

 

ASP

[*]<!-- #INCLUDE FILE="conexaobd.asp" -->

 

[*]<title>IMOBITA.com</title>

 

[*]<%

 

[*]busca =(Request("busca"))

 

[*]criterio=(Request("criterio"))

 

[*]

 

[*]Set rs Server.CreateObject("adodb.recordset")

 

[*]RS.PageSize =10

 

[*]SQL "SELECT * FROM anuncios WHERE Cod_Anunciante='"&bscuser&"' AND '"&criterio&"' LIKE '%" & busca & "%'"

 

[*]rs.Open SQL, ConnString, 1, 3

 

[*]

 

[*]Do while not rs.eof

 

[*]%>

 

[*]<%=rs("Tipo")%><p align="center"><font size="2" face="MS Sans Serif"><br>

 

[*]<%=rs("Rua")%><%=rs("Numero")%><br>

 

[*]<%=rs("Estado")%> - <%=rs("Cidade")%><br>

 

[*]<% rs.movenext

 

[*] Loop %>

 

Ai q mora o perigo ... qdo eu faço a busca com uma valor existente no BD .. ele retorna uma pagina em branco ... e quando deixo o campo busca vazio e faço a busca ... ele retorna a pagina com todos os registros referentes ao Cod_Anunciante

 

:(

 

Alguem sabe pq pode estar ocorrendo esta falha !?

 

E mais uma duvida ... e se eu quiser uma palavra q esteja em qualquer parte de um campo do BD exemplo:

 

|ENDEREÇO|

---------------

|R. Maria da|

|Graça |

---------------

|Av. Heitor |

|Penteado |

 

Endereço eh um campo do BD ... ae na busca a pessoa soh digita Graça ... como eu faço pra retornar todos os endereços q tenham Graça como valor ?

 

Desde jah .... aquela força !!!

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro erro: está ocorrendo pq você está fazendo busca por LIKE e sem nenhum tratamento para as requests.... então você deve primeiro colocar, via Javascript ou Vbscript, alguma mensagem para que se o usuário não completar algum dos campos, você mostre uma mensagem de erroDepois, altere essas variáveis para:busca =Trim(Request.Form("busca"))criterio=Trim(Request.Form("criterio"))Ponha um IF variável = vazio then mensagem erro (não se esqueça de tratar os caracteres '<', '>' e '%', pois podem causar bugsAh, e na SQL você deve mudar para:SQL = "SELECT * FROM anuncios WHERE Cod_Anunciante='"&bscuser&"' AND "&criterio&" LIKE '%" & busca & "%'"Repare q eu tirei as aspas simples do "&criterio&", pois alí é o nome do campo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dúvida 2A SQL q você pôs lá em cima faz oq você está querendo. O Like '% %' faz istoEx.: "Select * from campo where nome like '%maria%'[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao fiz tudo isso q você disse ... e ainda tentei sem aspas simples ... com aspas duplas ... sem aspas duplas ... com aspas simples no final deixei desse modo como você sugeriu:

 

ASP

[*]busca=Trim(Request.form("busca"))

 

[*]criterio=Trim(Request.form("criterio"))

 

[*]

 

[*]Set rs Server.CreateObject("adodb.recordset")

 

[*]RS.PageSize =10

 

[*]SQL "SELECT * FROM anuncios WHERE Cod_Anunciante='"&bscuser&"' AND "&criterio&" LIKE '%"&busca&"%'"

 

[*]rs.Open SQL, ConnString, 1, 3

 

Soh q ai ele retornou o seguinte erro:

 

Microsoft JET Database Engine error '80040e14'

 

Syntax error (missing operator) in query expression 'Cod_Anunciante='33802353854' AND LIKE '%%''.

:wacko:

 

To dando uma fuçada ai no forum pra ver se arrumo algo ... mas parece q tirando a aspas simples do campo do bd (Criterio) ... ele ignorou o codigo e foi direto para o AND...

Compartilhar este post


Link para o post
Compartilhar em outros sites

se tiver em branco ele busca tudo porque vazio faz parde de qualquer string...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao fiz tudo isso q você disse ... e ainda tentei sem aspas simples ... com aspas duplas ... sem aspas duplas ... com aspas simples no final deixei desse modo como você sugeriu:

 

ASP

[*]busca=Trim(Request.form("busca"))<br />criterio=Trim(Request.form("criterio"))<br /><br />Set rs Server.CreateObject("adodb.recordset")<br />RS.PageSize =10<br />SQL "SELECT * FROM anuncios WHERE Cod_Anunciante='"&bscuser&"' AND "&criterio&" LIKE '%"&busca&"%'"<br />rs.Open SQL, ConnString, 1, 3

 

Soh q ai ele retornou o seguinte erro:

 

Microsoft JET Database Engine error '80040e14'

 

Syntax error (missing operator) in query expression 'Cod_Anunciante='33802353854' AND LIKE '%%''.

:wacko:

 

To dando uma fuçada ai no forum pra ver se arrumo algo ... mas parece q tirando a aspas simples do campo do bd (Criterio) ... ele ignorou o codigo e foi direto para o AND...

<{POST_SNAPBACK}>

Bom, tá vendo o erro: expression 'Cod_Anunciante='33802353854' AND LIKE '%%''.

 

Isso quer dizer q sua variável criterio está vazia. Arruma esse erro pq com certeza é ele.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso mesmo cara, ta faltando o nome do campo que esta na variavel...

Compartilhar este post


Link para o post
Compartilhar em outros sites

No problem .... como eu sempre digo vcs sao F$#$ DEMAIS ... eu pago uma pau pra vcs !!! http://forum.imasters.com.br/public/style_emoticons/default/wub.gif

 

:D

 

Entao galera resolvi ... o q tava pegando era q o :

 

busca=Trim(Request.form("busca"))

criterio=Trim(Request.form("criterio"))

 

Estava deixando o valor das variaveis em branco .... por isso q nao rolava ... ai eu tirei o trim e fiz como no começo apena usando a dica do ultra ... tirando as aspas simples do criteiro na consulta SQL:

 

ASP

[*]busca=(Request("busca"))

 

[*]criterio=(Request("criterio"))

 

[*]

 

[*]Set rs Server.CreateObject("adodb.recordset")

 

[*]RS.PageSize =10

 

[*]SQL "SELECT * FROM anuncios WHERE Cod_Anunciante='"&bscuser&"' AND "&criterio&" LIKE '%"&busca&"%'"

 

[*]rs.Open SQL, ConnString, 1, 3

 

E vejam q maravilha .... funcionou q uma beleza !!!

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Valeu galera

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok tiozinho...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa !!!

 

Tiozinho tbm nao neh !!! uhauahuah ... pode chamar de Jeffinho vai

uhahuahuah zuera Mario

 

Valeu Galera

http://forum.imasters.com.br/public/style_emoticons/default/yay.gif

ok Jeffinho

Compartilhar este post


Link para o post
Compartilhar em outros sites

No problem .... como eu sempre digo vcs sao F$#$ DEMAIS ... eu pago uma pau pra vcs !!!  http://forum.imasters.com.br/public/style_emoticons/default/wub.gif

 

:D

 

Entao galera resolvi ... o q tava pegando era q o :

 

busca=Trim(Request.form("busca"))

criterio=Trim(Request.form("criterio"))

 

Estava deixando o valor das variaveis em branco .... por isso q nao rolava ... ai eu tirei o trim e fiz como no começo apena usando a dica do ultra ... tirando as aspas simples do criteiro na consulta SQL:

 

ASP

[*]busca=(Request("busca"))<br />criterio=(Request("criterio"))<br /><br />Set rs Server.CreateObject("adodb.recordset")<br />RS.PageSize =10<br />SQL "SELECT * FROM anuncios WHERE Cod_Anunciante='"&bscuser&"' AND "&criterio&" LIKE '%"&busca&"%'"<br />rs.Open SQL, ConnString, 1, 3

 

E vejam q maravilha .... funcionou q uma beleza !!!

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Valeu galera

<{POST_SNAPBACK}>

So uma perguntinha... você pega o Cod_Anunciante com a VAR

bscuser , mais onde você esta buscando esse valor.

 

Apenas vejo a busca do valor de

busca = Request.Form("busca")

criterio = Request.Form("criterio")

 

me digam onde esta a varivael BSCUSER.....

senao tem nada a ver, desculpem... http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa opa ... nada ve nao !!!

 

como você fala assim do meu system !!!

http://forum.imasters.com.br/public/style_emoticons/default/devil.gif

 

Entao cara ... o bscuser ... ele esta vindo de um include da pagina ... eu soh postei o codigo da busca e nao a pagina inteira !!!

:blink:

 

Mal ae .... valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Jeff.... é bom você manter o : busca=Trim(Request.form("busca")), pois se o usuário digitar uma palavra e espaços (antes ou depois) a busca vai falharO Trim remove os espaços antes da primeira letra, e depois da última... eu recomendo você usá-lo (pelo menos na variável busca)[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Massa Ultra .... massa !!!Entao meu coloquei o Trim sim ... e testei com espaço e sem espaço ... ta DEZ a parada ... soh to fazendo os ajustes de acentuação agora ... vai ficar bom.Brigadão ai pelo toque !!!

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.