Ir para conteúdo

POWERED BY:

Arquivado

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

marcelok

Consulta usando combos

Recommended Posts

Alguem tem alguma dica de como usar uma consulta usando combos em ASP?Por exemplo tenho uma consulta ao banco q retorna 10 campos, cada campo e escrito em uma combo.Tendo a pagina montada com os 10 combos, o usuario poderá montar a consulta q ele quiser, por exemplo selecionando tal valor do combo 1, tal valor do combo 3, ou seja, nem todos os combos são obrigatórios.... e ao final qd ele montar a consulta selecionando os valores do combo ele clica num botao consultar e o resultado do filtro é exibido...se alguem puder me dar umas dicas eu agradeco muito...Minha duvida e como montar o select via asp. Como existem 10 combos, fica inviavel montar um monte de if para ver quais combos o cara seleciono ou nao pra pode monta a consulta...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho q você pode fazer assim:

 

strSql=Select * from TABELA whereif combo1=suaCondição then strSql=strSql & campo1=condição andif combo2=suaCondição then strSql=strSql & campo2=condição2 and....strSql=left(strSql, len(strSql)-4)

uhmm... +- isso ! devem aparecer alguns problemas mas acho que esse é o caminho !

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou com o mesmo problema mas nao entendi oq você disse:Mas comigo não é só em uma tabela é em varias.Tipo tenho:combo1 (TabelaX)combo2 (TabelaY)combo3 (TabelaZ)combo4 (TabelaH)Na consulta posso selecionar 1,2 ou 3 combos se quiser posso selecionar somente 1 combo.Podem me da ajuda nisso???Obrigado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa,O caminho mais fácil em codificação parece que seria aquele com monte de if's que você abomina :)Outra solução seria você montar as combos com nomes padronizados que indiquem qual tabela representem para então posteriormente você fazer um loop pelos valores recebidos por request e então pegar o nome da tabela e o nome do campo escolhido pelo usuário para então montar sua consulta. Lembrando também de incluir no padrão o campo de texto onde o usuário preenche o valor que busca.Além do resgate de dados você montar no loop, a montagem da tela também.deve montar num loopSerá que entendeu? Seria algo tipo.Montagem:

<input type="text" name="val_<%= nomeTabela(contador) %>"><select name="cam_<%= nomeTabela(contador) %>"><option>...</option></select>

Leitura:

for each parametro in request.form    if (left (parametro, 3) = "val") then        valor = request(parametro)        nomeTabela = '' pega o nome da tabela que tá na var parametro         campo = '' pega o nome do campo no request        ''' adiciona os dados a sua sentença sql. :)    end ifnext

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom fisso igual o SMITH disse e deu certo só q verifiquei outro problema.

 

Pq na consulta está trazendo os codigos pois estou usando relacionamento entre varias tabela, so que tenho q fazer um INNER JOIN, tentei varias vezes e nao tive sucesso.

 

Se alguem puder dar uma dica agradeço.

 

Meu código esta assim:

 

#####PAGINA DE CONSULTA#####

 

<form id="form1" name="form1" method="post" action="teste02.asp">

<select name="id_tipo" class="BOX">

<option value=""></option>

<%

sql_tipo = "SELECT * FROM magic_tipo"

Set lista_tipo = conexao.execute(sql_tipo)

while not lista_tipo.eof

%>

<option value="<%=lista_tipo("id_tipo")%>"><%=lista_tipo("nome_tipo")%></option>

<%

lista_tipo.movenext

wend

%>

</select>

<select name="id_cor" class="BOX">

<option value=""></option>

<%

sql_cor = "SELECT * FROM magic_cor"

Set lista_cor = conexao.execute(sql_cor)

while not lista_cor.eof

%>

<option value="<%=lista_cor("id_cor")%>"><%=lista_cor("nome_cor")%></option>

<%

lista_cor.movenext

wend

%>

</select>

<input type="submit" name="Submit" value="Consultar" />

</form>

 

#####PAGINA QUE EXIBE A CONSULTA#####

 

<%

dim id_tipo,id_cor

id_tipo = request.Form("id_tipo")

id_cor = request.Form("id_cor")

 

SQL = "SELECT * FROM magic_cards WHERE 1=1"

 

if id_tipo <> "" then

SQL = SQL & "and id_tipo='" & id_tipo & "' "

end If

 

if id_cor <> "" then

SQL = SQL & "and id_cor='" & id_cor & "' "

end If

 

Set lista = conexao.execute(SQL)

%>

<%

while not lista.eof

%>

<b>Código Card:</b> <%=lista("id_card")%><br>

<b>Nome:</b> <%=lista("nome")%><br>

<b>Tipo:</b> <%=lista("id_tipo")%><br>

<b>Cor:</b> <%=lista("id_cor")%><br><br>

<%

lista.movenext

wend

%>

 

#####EXEMPLO DE INNER DE OUTRAS PAGINAS#####

 

<%

 

dim id_card

id_card = Request.QueryString("id_card")

 

sql_consulta = "SELECT magic_cards.id_card,"

sql_consulta = sql_consulta &"magic_cards.nome,"

sql_consulta = sql_consulta &"magic_cor.nome_cor,"

sql_consulta = sql_consulta &"magic_cor.id_cor,"

sql_consulta = sql_consulta &"magic_tipo.nome_tipo,"

sql_consulta = sql_consulta &"magic_tipo.id_tipo"

sql_consulta = sql_consulta &" FROM magic_cards "

sql_consulta = sql_consulta &" INNER JOIN magic_cor"

sql_consulta = sql_consulta &" ON magic_cards.id_cor = magic_cor.id_cor"

sql_consulta = sql_consulta &" INNER JOIN magic_tipo"

sql_consulta = sql_consulta &" ON magic_cards.id_tipo = magic_tipo.id_tipo WHERE id_card="&id_card

Set lista = conexao.execute(sql_consulta)

 

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza e-junior ?Na página que exibe a consulta tem o código:: SQL = "SELECT * FROM magic_cards WHERE 1=1"Qual é o nome de sua chave primária da tabela 'magic_cards' ????E mudando de assunto, você joga magic ? Eu tenho muitas cartas de magic (é sobre isso mesmo né o banco ?). Anote meu msn ai: msn@websan.com.br

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.