Ir para conteúdo

POWERED BY:

Arquivado

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

AndréMiranda

Como fazer??

Recommended Posts

Fala pessoal! Cá estou eu mais uma vez com uma dúvida!!

Pra falar a verdade, não sei se a dúvida é de html ou de ASP... ou dos dois juntos!!

 

Estou ainda no projeto de criação de um currículo para a empresa onde trabalho.

 

Seguinte... tenho uma página user.asp onde tem campos pra fazer uma busca. Nessa página user.asp tem um list/menu com as opções "Nome", "Cargo", "Estado", "Idiomas" e ao lado tem um textfield onde o cara escreve o que ele quer de acordo com a opção que ele escolheu na list/menu. Por exemplo, caso eu queira achar um funcionário com o nome "João", eu escolho a opção "Nome" no list/menu e no textfield eu escrevo "João".

 

Até aí, tudo bem, está funcionando às mil maravilhas...

 

Mas, agora que vem o problema... na opção "Idiomas", no meu BD não existe um único campo pra idiomas e sim 4 campos que são "alemao", "frances", "espanhol" e "ingles".

 

Então, pessoal, eu queria saber se tem como com uma opção no list/menu, eu procurar em mais de um campo ao mesmo tempo. Mas, eu gostaria de usar a mesma SELECT que estou usando que é essa abaixo:

 

"SELECT * FROM tb_cadastro WHERE "+ request.form("lista")+ " LIKE " + "'%" + request.form("texto") + "%' ORDER BY nome"

Nesse SELECT, "lista" é o nome do list/menu e "texto" é o nome do textfield.

 

Há como fazer isso??

 

Abraços!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exemplo:

 

SELECT * FROM tb_cadastro WHERE " & request.form("lista") & " LIKE  '%" & request.form("texto") & "%'  AND Campo_1 = '" & OutraVariavel & "' ORDER BY nome"

Para pesquisar em mais de um campo, utilize o comando "AND", e a outra opção de busca após ele...

 

Usando o AND, você estará informando à SQL para pesquisar NESTE CAMPO e NESTE AKI TB....

 

Se você utilizar o "OR", estará dizendo: Pesquise NESTE CAMPO OU NESTE OUTRO...

 

Entendeu ??

 

Abraços...

 

PS: No ASP, utilize o "&" ao inves do "+"..

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem como fazer mas estou vendo um problema.

Se eu escolho linguas, teria qua abrir uma outra lista com as linguas disponiveis. Certo?

 

ZeroHour, não abriria outra lista não. Por exemplo, se eu quero saber se algum funcionário fala alemão, eu escolheria "Idiomas" no list/menu e depois escreveria "Alemão" no textfield.

 

O problema é que qdo eu escolher "Idiomas", na verdade eu tenho 4 campos no meu BD pra ser procurado e ver se o cara fala o idioma que eu escolhi, que podem ser Alemão, Espanhol, Francês e Inglês.

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dãaaaa...ta certo.

Usando o que Darkedemo passou dará certo.

 

abraço.

Na verdade, há mais campos que eu vou querer procurar... aí no caso é só eu ir acrescentando no meu SELECT quais campos do meu BD eu quero que ele procure, né?

 

Abraços e valeu mesmo pessoal!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala pessoal!!

Voltei hj com o meu projeto, mas na verdade a minha dúvida continua... acho que não é problema no SQL e sim nos values do list/menu.

 

Qdo fazemos o list/menu lá no Dreamweaver, ele pede pra ser colocado o "label" e o "value", certo? Nesse "value" estão sendo cadastrados da mesma forma que estão no meu BD (mesma grafia).

 

Qdo chega na parte de idiomas é que o problema continua. Pois, eu ponho como "label" Idiomas e como "values" só dá pra botar um valor, certo? Mas, eu queria procurar em 4 campos diferentes que são os 4 idiomas cadastrados por mim.

 

<option value="espanhol">Idiomas</option>

No código acima, qdo eu escolher Idiomas, como o "value" tá "espanhol", o campo "espanhol" no meu BD será o único a ser procurado pois eu não estou dando como parâmetro de procura os outros idiomas... estou certo ou estou falando bobagem? hehehe

 

Abraços!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, como eh q ta definido teu bd?

 

existe um campo idiomas na tabela funcionario, ou existe um campo para cada idioma (ex: campo ingles, campo espanhol, etc)?

 

se for a primeira opção está mal definido pq não antevê o caso de um funcionario falar mais de um idioma.

 

se for a segunda, é melhor você fazer uma normalização da relação, ou seja, você cria uma nova tabela por ex: idiomas_func, onde para cada idioma q o funcionario falar será criado um novo registro com o id do funcionario e com o nome do idioma.

 

no caso de você fazer essa modificação no seu bd, sua consulta sql ficaria da seguinte forma:

 

SELECT id FROM idiomas_func WHERE idioma LIKE '" & request.form("texto") & "' ORDER BY nome"

 

depois de pegar o id todos os funcionarios q falam o idioma digitado no campo da busca, eh so usar esse id em um select para retornar os dados desses funcionários.

 

bem... foi assim q eu entendi o seu problema, se nao for isso posta ae mais detalhes

 

abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá J_Alison!

Valeu pelo help!

 

Vê se eu entendi certo o que você falou... no meu BD, eu tenho uma tabela chamada tb_cadastro e lá tenho vários campos e 4 desses campos são: "alemao", "espanhol", "frances" e "ingles" (sim, no meu BD eu fiz de acordo com a 2ª opção que você falou). A sua idéia é criar uma nova tabela chamada idiomas_func e nela cadastrar 2 campos: "id" e "idioma", é isso?

 

Eu tenho uma página chamada cadastro.asp que é pra pessoal cadastrar o currículo e um dos campos dessa página é a parte de idiomas. Por exemplo, tem lá:

 

Alemão - list/menu contendo "básico" "intermediário" "avançado" e se o cara escolher, por exemplo, "básico", no BD, no campo "alemao" entrará o valor "Alemão básico".

Espanhol - da mesma forma que acima apenas mudando pra espanhol

Inglês - da mesma forma que acima apenas mudando inglês

Francês - da mesma forma que o exemplo acima apenas mudando pra fracês

 

 

Qdo o cara se cadastrar os valores irão pra tabela tb_cadastro, mas pelo que você falou, você acha que os idiomas deveriam ser cadastrados pruma outra tabela chamada idiomas_func... é isso?

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixa eu ver se entendi..

 

você qr fazer uma busca no BD, e qr colocar na SQL mais uma condição que é o Idioma.. certo ??

 

Porém você tem mais de um campo de idiomas, certo ?

 

Vamos imaginar o seu formm da busca:

 

Um campo "Buscar em", onde você terá algumas opções, como "Nome", "CPF", entre outros, e um campo onde o cara possa selecionar por idioma.

 

Se o cara selecionar algum idioma, você deve fazer a busca em 4 campos diferentes do BD, certo ?

 

Então você faz o seu algoritomo assim:

 

Se o campo de Idiomas contiver um valor diferente de null, você monta a SQL fazendo a busca nos 4 campos, se o campo for null, você monta a SQL de acordo com a busca sem os idiomas....

 

Na pratica:

 

<%

Idioma = Request.Form("Idiomas")

If (Idioma <> "") Then
Sql = "SELECT * FROM Tbl_Usuario WHERE Alemao = '" & Idioma & "' OR Ingles = '" & Idioma & "' OR Espanhol = '" & Idioma & "' OR Frances = '" & Idioma & "'"
Else
SQL = "SELECT * FROM Tbl_Usuario WHERE Nome = '" & Nome & "'"
End if

%>

Espero que você tenha entendido...

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Darkdemo, testei o que você me falou e não funcionou. Na verdade, no que você disse ainda falta uma coisinha pra ficar exatamente como está aqui. Eu não tenho só a list/menu com nome, idade, estado e idioma. Além dela, eu tmb tenho um textfield onde o cara digitará o que ele quer de acordo com a opção que ele tiver escolhido do list/menu.

 

No list/menu tem os Item labels e os values certo? O Item label de idiomas é "Idiomas" e o value é "idioma". Então, acredito que o pulo do gato está em juntar esse value "idioma" com o que o cara irá escrever no textfield... e como você mesmo disse e está correto, a busca de idiomas se fará em 4 campos no BD.

 

Por exemplo, se o cara quer saber qual funcionário fala alemão, ele escolherá "Idiomas" no list/menu e no textfield ele escreverá Alemão e clicará no botão de buscar.

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... oq eu te passei foi apenas a LOGICA, nao o sistema completo.... acho q falta um pouco de pensamento ai hein ???

 

Nao me leve a mal, mas oq quero dizer é que bastaria você pensar um pouco para perceber que a solução está na sua frente, é só querer enxergar:

 

Vamos supor que o drop down list se chama "BuscarPor", e o campo onde o cara irá digitar ql o idioma se chame "Texto".

Supondo tb que na sua tabela você tem os campos do idioma assim: FalaIngles: S (sim) e NivelIngles: I (Intermediario). E para os outros idiomas tb, ou seja, em um campo você verifica se o cara fala ou nao o idioma e no outro ql o nivel do idioma.

 

Então sua busca seria assim:

Por = Request.Form("BuscaPor")
Texto = Request.Form("Texto")

If (Por = "Idioma") Then
SQL = "SELECT * FROM Tabela WHERE Fala&Texto = 'S' "
End if

Neste exemplo, ele irá retornar TODOS os registros que contenham o campo "Fala" + o idioma digitado no campo texto preenchido com o valor "S"...

 

Entendeu ???

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu tinha entendido a lógica que você tinha me passado, apenas nãoe stava conseguindo aplicar à minha situação (acho que você ficou meio nervoso comigo heheeh).

 

Funcionou agora... fiz assim ó:

 

lingualist = request.form("lista")
linguatext = request.form("texto")

if (lingualist = "idioma") Then
rs_busca_cmd.CommandText = "SELECT * FROM tb_cadastro WHERE alemao LIKE "& "'%"& linguatext &"%' OR ingles LIKE "& "'%"& linguatext &"%' OR espanhol LIKE "& "'%"& linguatext &"%' OR frances LIKE "& "'%"& linguatext &"%' OR outros_idiomas LIKE "& "'%"& linguatext &"%'"
Else
rs_busca_cmd.CommandText = "SELECT * FROM tb_cadastro WHERE "& lingualist &" LIKE "& "'%"& linguatext &"%'  ORDER BY nome ASC"
End if

tá perfeito agora!

Mas, desculpa qq coisa aí, cara... é que às evzes dá uns brancos, mas às vezes a cosia não desenrola mesmo e falta um empurrãozinho de alguém pra abrir os olhos! E, de qq forma, valeu pelo empurrão!!

 

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.