Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda Em Uma Busca Em Asp


serraventura

Pergunta

Pow galera to precisando de ajuda to a um bom tempo tentando resolver essa questão espero conseguir explicar direito...o script não esta completo...a parte q importa coloquei em azul...

eu tenho um formulario em outra página onde eu dou algumas opções de busca.... pro usuario fazer ..........o formulario tem as opções de...

cidade, estado, tempo de experiencia, registro no crea (sim ou não), certificado do site (sim ou não)...

então o usuário com as opçoes acima escolha o tipo de técnico do site que ele vai buscar....quase tudo funciona direito... menos dois itens..... os de sim e não no caso o registro no crea e o certificado do site.....nessas duas opções eu dou a opção de selecionar sim ou não...SIM se o usuário quizer buscar um técnico com registro no crea e não se ele não quizer...e a opção do certificado do site funciona da mesma maneira...no form coloquei os valores especificos pras opções.....então no script q é chamado pelo form eu regato os valores e jogo pra variaveis e as manipulo com condições *como vocês podem ver a onde esta de azul*

em uma dessas manipulações eu faço

if a varialvel for igual a "SIM" então eu jogo para uma outra variavel uma string dizendo q na busca traga também técnicos que no banco de dados o campo registro do crea esteja diferente de vazio....e depois coloco essas variaveis na string SQL....porém a grande questão.....nenhum dos valores (SIM,NÃO) manipulados dão resultado na consulta do BD......simplesmente parece q o script ignora.....

o certo era pra trazer.......se a opção de registro no crea fosse = sim ele traria técnicos com registro no crea e se a opção fosse não a busca não traria técnicos com registro no crea.....porem não importa qual opção você coloque ele sempre traz técnicos com registro no crea....mesmo colocando NÃO na opção de busca!!!!!

Alguém pode me ajudar?????

<%

if session("logincli") = "" then

response.redirect "errologin.asp"

else

dim vapelidocliente, vcidade, vestado, vtempo_experiencia, vreg_crea, vcertificado, vconhecimentos

dim vX, vY, url, vapelidotec, url2, cor, cor1, sgbd, conexao, cont

vapelidocliente= session("logincli")

vcidade= Ucase(request.form("cidade"))

vestado= request.form("estado")

vtempo_experiencia= request.form("tempo_experiencia")

vreg_crea= request.form("reg_crea")

vcertificado= request.form("certificado")

vconhecimentos= request.form("conhecimentos")

if vreg_crea = "Sim" then

vX="reg_crea <> """

end if

if vreg_crea = "Não" then

vX="reg_crea = """

end if

if vcertificado = "Sim" then

vY="certificado <> """

end if

if vcertificado = "Não" then

vY="certificado = """

end if

%>

<%

registros = 5

pagina = Request.QueryString("pagina")

If pagina = "" Then

pagina = 1

End If

arqbd = server.mappath("banco.mdb")

sgbd = "DBQ=" & arqbd & ";DRIVER={Microsoft Access Driver (*.mdb)}"

set db= server.createobject("ADODB.connection")

db.open sgbd

Set rs = Server.Createobject("ADODB.RECORDSET")

set rs.ActiveConnection = db

rs.CursorType = 3

rs.PageSize = registros

sql = "SELECT * FROM tecnicos WHERE cidade LIKE '%"& vcidade &"%' AND estado LIKE '%"& vestado &"%' AND tempo_experiencia LIKE '%"& vtempo_experiencia &"%' AND '"&vX&"' AND '"&vY&"' AND conhecimentos LIKE '%"& vconhecimentos &"%' AND num_chamados <= 7 ORDER BY num_chamados"

rs.Open sql

cont = 0

do while not resultsql.Eof

cont = cont+1

resultsql.MoveNext

loop

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

opa, beleza?

cara.. eu tava olhando o seu codigo.. um pouco complexo ele, não?

assim..

quando sua variavel recebe aquela comparação.. você testou, se a variavel, ao invés de receber a comparação, não está recebendo um valor booleano? tipo, true ou false?

o que acontece ao rodar seu codigo ..? ele retorna erro? ou só não funciona?

desculpe.. mas não li todo o seu texto.. li na corrida..

tente fazer o que eu falei

se não der, posta aí

ate mais

Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade as comparações q coloquei nas variaveis funcionan, pois já testei....e o codigo funciona sim, mas não da maneira q deveria...ex se eu colocasse NÃO na opção de registro crea....entaum não era para listar técnicos com registro no crea....porem ele lista!! entendeu?

Link para o comentário
Compartilhar em outros sites

  • 0
Na verdade as comparações q coloquei nas variaveis funcionan, pois já testei....e o codigo funciona sim, mas não da maneira q deveria...ex se eu colocasse NÃO na opção de registro crea....entaum não era para listar técnicos com registro no crea....porem ele lista!! entendeu?

sql = "SELECT * FROM tecnicos WHERE cidade LIKE '%"& vcidade &"%' AND estado LIKE '%"& vestado &"%' AND tempo_experiencia LIKE '%"& vtempo_experiencia &"%' AND '"&vX&"' AND '"&vY&"' AND conhecimentos LIKE '%"& vconhecimentos &"%' AND num_chamados <= 7 ORDER BY num_chamados"
rs.Open sql

adiciona o registro do crea na validação ai em cima....

Link para o comentário
Compartilhar em outros sites

  • 0

Ele já esta adicionado, só q dentro de uma variavel!!!....estas q estao em azul...

sql = "SELECT * FROM tecnicos WHERE cidade LIKE '%"& vcidade &"%' AND estado LIKE '%"& vestado &"%' AND tempo_experiencia LIKE '%"& vtempo_experiencia &"%' AND '"&vX&"' AND '"&vY&"' AND conhecimentos LIKE '%"& vconhecimentos &"%' AND num_chamados <= 7 ORDER BY num_chamados"

rs.Open sql

eu passei pra essa variavel nas condições abaixo:

if vreg_crea = "Sim" then

vX="reg_crea <> """

end if

if vreg_crea = "Não" then

vX="reg_crea = """

end if

if vcertificado = "Sim" then

vY="certificado <> """

end if

if vcertificado = "Não" then

vY="certificado = """

end if

Link para o comentário
Compartilhar em outros sites

  • 0

Apesar de já estar adicionado você me deu uma outra idéia...Assim...ainda não testei mais comparem aí e vejam o q vocês acham!!......eu alterei os q estaum em azul....e mudei o nome da variavel...Os q estão em vermelho tem os valores iguais a vazios!

if vreg_crea = "Sim" then

sinal = "<>"

end if

if vreg_crea = "Não" then

sinal = "LIKE"

end if

if vcertificado = "Sim" then

sinal2 = "<>"

end if

if vcertificado = "Não" then

sinal2 = "LIKE"

end if

sql = "SELECT * FROM tecnicos WHERE cidade LIKE '%"& vcidade &"%' AND estado LIKE '%"& vestado &"%' AND tempo_experiencia LIKE '%"& vtempo_experiencia &"%' AND reg_crea '"&sinal&"' '%""%' AND certificado '"&sinal2&"' '%""%' AND conhecimentos LIKE '%"& vconhecimentos &"%' AND num_chamados <= 7 ORDER BY num_chamados"

rs.Open sql

Link para o comentário
Compartilhar em outros sites

  • 0

se você pega os dados do bd, e se isso for do tipo sim e não, acho que não precisa tudo isso...

sim=-1

não=0

então aqui ele busca a opção marcada

vreg_crea= request.form("reg_crea")

ai você so altera a forma como ele esta.....como esta no bd........isso campos de opção sim e não????

Link para o comentário
Compartilhar em outros sites

  • 0

Eu não estou usando esse campo no bd, to usando tipo texto mesmo.....pois vai entrar uma string...no campo.....a busca faz diferença entre esse campo estar vazio ou cheio!!

ainda nem testei a outra forma q fiz.....estou sem tempo.........mais assim q testar vou postar denovo o resultado!

valeu!

Link para o comentário
Compartilhar em outros sites

  • 0

Galera consegui corrigir o erro......................acho q o problema era preguiça de pensar mesmo.........rs

fiz essas alterações...

vazio = ""

if vreg_crea = "Sim" then

sinal = "<>"

end if

if vreg_crea = "Não" then

sinal = "LIKE"

end if

if vcertificado = "Sim" then

sinal2 = "<>"

end if

if vcertificado = "Não" then

sinal2 = "LIKE"

end if

e também essas

sql = "SELECT * FROM tecnicos WHERE cidade LIKE '%"& vcidade &"%' AND estado LIKE '%"& vestado &"%' AND tempo_experiencia LIKE '%"& vtempo_experiencia &"%' AND reg_crea "&sinal&" '"&vazio&"' AND certificado "&sinal2&" '"&vazio&"' AND conhecimentos LIKE '%"& vconhecimentos &"%' AND num_chamados <= 7 ORDER BY num_chamados"

rs.Open sql

mas mesmo assim valeu pela ajuda..só tive a ideia de uma solução depois q bareta postou

"adiciona o registro do crea na validação ai em cima...."

valeu fui!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...