Ir para conteúdo

POWERED BY:

Arquivado

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

rcdesign

Pesquisa interna com diversos Parâmetros

Recommended Posts

vamos recaptular o que você quer.você quer pesquisar se existe um musico de determinada cidade que toca determinado instrumento em determinado estilo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara estive analisando este seu problema, se você normalizar seu bd fica mais simples a consulta

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez o codigo abaixo resolva seu problema, veja se é isso que você quer mesmo

strSql = "SELECT * FROM tbcadastromusicos WHERE cidade = '" & Request("cidade")&"' "strsql = strSql & "AND ((instrumento1 = '" & Request("instrumento1") & "' AND estilo1 = '"Request("estilo1")&"') "strsql = strSql & "OR (instrumento1 = '" & Request("instrumento2") & "' AND estilo1 = '"Request("estilo2")&"') "strsql = strSql & "OR (instrumento1 = '" & Request("instrumento3") & "' AND estilo1 = '"Request("estilo3")&"') "strsql = strSql & "OR (instrumento2 = '" & Request("instrumento1") & "' AND estilo2 = '"Request("estilo1")&"') "strsql = strSql & "OR (instrumento2 = '" & Request("instrumento2") & "' AND estilo2 = '"Request("estilo2")&"') "strsql = strSql & "OR (instrumento2 = '" & Request("instrumento3") & "' AND estilo2 = '"Request("estilo3")&"') "strsql = strSql & "OR (instrumento3 = '" & Request("instrumento1") & "' AND estilo3 = '"Request("estilo1")&"') "strsql = strSql & "OR (instrumento3 = '" & Request("instrumento2") & "' AND estilo3 = '"Request("estilo2")&"') "strsql = strSql & "OR (instrumento3 = '" & Request("instrumento3") & "' AND estilo3 = '"Request("estilo3")&"')) "

Compartilhar este post


Link para o post
Compartilhar em outros sites

não esqueça que o request estilo que aparece em outra linha na realidade esta na linha acima , é que não apareceu completamente, devido ao espaço pequeno no quote

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpe minha ignorância.... O que você quis dizer com: "normalizar o meu Banco de dados" ?Copiei e colei o código que você postou e está dando este erro:

Erro de compilação do Microsoft VBScript error '800a0401' Fim da instrução esperado /galeria/consulta.asp, line 24 strsql = strSql & "AND ((instrumento1 = '" & Request("instrumento1") & "' AND estilo1 = '"Request("estilo1")&"') "------------------------------------------------------------------------------------------^

Coloco abaixo o código da página de consulta:

<html><head><title>Resultado da Consulta</title><STYLE type="text/css"></STYLE></head><body background="fundo1.jpg" text="#FFFFFF"><font face=verdana size=2> <b> <font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF">Os Músicos cadastrados na cidade de </font></b></font><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF"><%=Request.Form("cidade")%> são: </font></b><br>  <br><%dim DB ' conexaodim rcst ' recordsetdim strSql ' String sqlSet DB = Server.CreateObject("ADODB.Connection")cnpath="DBQ=" & server.mappath("cadastro.mdb")DB.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & cnpathset rcst = Server.CreateObject("ADODB.Recordset")strSql = "SELECT * FROM tbcadastromusicos WHERE cidade = '" & Request("cidade")&"' "strsql = strSql & "AND ((instrumento1 = '" & Request("instrumento1") & "' AND estilo1 = '"Request("estilo1")&"') "strsql = strSql & "OR (instrumento1 = '" & Request("instrumento2") & "' AND estilo1 = '"Request("estilo2")&"') "strsql = strSql & "OR (instrumento1 = '" & Request("instrumento3") & "' AND estilo1 = '"Request("estilo3")&"') "strsql = strSql & "OR (instrumento2 = '" & Request("instrumento1") & "' AND estilo2 = '"Request("estilo1")&"') "strsql = strSql & "OR (instrumento2 = '" & Request("instrumento2") & "' AND estilo2 = '"Request("estilo2")&"') "strsql = strSql & "OR (instrumento2 = '" & Request("instrumento3") & "' AND estilo2 = '"Request("estilo3")&"') "strsql = strSql & "OR (instrumento3 = '" & Request("instrumento1") & "' AND estilo3 = '"Request("estilo1")&"') "strsql = strSql & "OR (instrumento3 = '" & Request("instrumento2") & "' AND estilo3 = '"Request("estilo2")&"') "strsql = strSql & "OR (instrumento3 = '" & Request("instrumento3") & "' AND estilo3 = '"Request("estilo3")&"')) "set rcst = DB.execute (strSql)do until rcst.eofResponse.Write(rcst("nome") & "<br>")rcst.movenextloop%></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

strSql = "SELECT * FROM tbcadastromusicos WHERE cidade = '" & Request("cidade")&"' "strsql = strSql & "AND ((instrumento1 = '" & Request("instrumento1") & "' AND estilo1 = '"&Request("estilo1")&"') "strsql = strSql & "OR (instrumento1 = '" & Request("instrumento2") & "' AND estilo1 = '"&Request("estilo2")&"') "strsql = strSql & "OR (instrumento1 = '" & Request("instrumento3") & "' AND estilo1 = '"&Request("estilo3")&"') "strsql = strSql & "OR (instrumento2 = '" & Request("instrumento1") & "' AND estilo2 = '"&Request("estilo1")&"') "strsql = strSql & "OR (instrumento2 = '" & Request("instrumento2") & "' AND estilo2 = '"&Request("estilo2")&"') "strsql = strSql & "OR (instrumento2 = '" & Request("instrumento3") & "' AND estilo2 = '"&Request("estilo3")&"') "strsql = strSql & "OR (instrumento3 = '" & Request("instrumento1") & "' AND estilo3 = '"&Request("estilo1")&"') "strsql = strSql & "OR (instrumento3 = '" & Request("instrumento2") & "' AND estilo3 = '"&Request("estilo2")&"') "strsql = strSql & "OR (instrumento3 = '" & Request("instrumento3") & "' AND estilo3 = '"&Request("estilo3")&"')) "

troca o codigo por este

Compartilhar este post


Link para o post
Compartilhar em outros sites

:rolleyes: Agora tá quase marioufpa... só falta formatar o resultado para que apareça além do nome, o e-mail e as demais informações do músico cadastrado de acordo com a pesquisa.Gostaria de colocar os resultados da pesquisa em uma tabela com as informações em seus campos específicos é claro.. algo que ficasse mais ou menos assim:

<table width="75%" border="1">  <tr>     <td width="12%"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF">Nome</font></b></td>    <td colspan="3"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF">       </font></b></td>  </tr>  <tr>     <td width="12%"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF">Dt       Nasc</font></b></td>    <td width="28%"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF"></font></b></td>    <td width="12%"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF">E-mail</font></b></td>    <td width="48%"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF"></font></b></td>  </tr>  <tr>     <td width="12%"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF">Instrumento1</font></b></td>    <td width="28%"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF"></font></b></td>    <td width="12%"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF">Estilo1</font></b></td>    <td width="48%"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF"></font></b></td>  </tr>  <tr>     <td width="12%"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF">Instrumento2</font></b></td>    <td width="28%"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF"></font></b></td>    <td width="12%"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF">Estilo2</font></b></td>    <td width="48%"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF"></font></b></td>  </tr>  <tr>     <td width="12%"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF">Instrumento3</font></b></td>    <td width="28%"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF"></font></b></td>    <td width="12%"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF">Estilo3</font></b></td>    <td width="48%"><b><font size="2" face="Arial, Helvetica, sans-serif" color="#FFFFFF"></font></b></td>  </tr></table>

Este código já está funcionando, mas a pesquisa funcionaria melhor independente da posição aonde o as informações estão cadastradas. Por exemplo: No cadastramento do músico ele pode optar por até 3 instrumentos (instrumento1, instrumento2 e instrumento3) - Vamos supor que o cadastro seja feito assiminstrumento1: Guitarrainstrumento2: Baixoinstrumento3: TecladoNeste código, se na pesquisa o internauta colocar os seguintes parâmetros:instrumento1: Baixoinstrumento2: Guitarrainstrumento3: 'não selecionadoO resultado não vai mostrar aquele músico cadastrado, apesar dele corresponder as necessidades de quem está fazendo a pesquisa....Deu pra entender? Acho que estou complicando né? De qqr forma obrigado pela sua ajuda!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

é por conta disso que achava melhor normalizar seu bdtipoarmazenar as informações pessoais dos musicos em uma tabela com os campos tipo: nome cidade etc acrescentando um campo de autonumeraçãoe outra tabela contendo:o numero do musico(que seria o mesmo do campo autonumeração) instrumento e estiloa chave primaria desta nova tabela, por usar uma chave estrangeira de outra tabela seria o conjunto dos tres campos delaai se um musico poderia tocar apenas um instrumento ou varios, não ficaria limitado a apenas tres entende e tambem não perderia espaço em vão no bdé so uma ideia, daria um trabalho inicial, mas com certeza compensaria

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem... não sei como fazer isso não mas vou tentar mexer no access até conseguir.... vou postar minhas dúvidas com relação ao access na seção específica e depois volto aqui..Mais uma vez obrigado pela imensa ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara faz o seguinte, salve tudo que você fez até agora, e vamos começar o que estou te falando criando diversas tabelas menores e mais organizadas, isso é normalizar o bd, tentar tirar o maximo de imformações replicadas de seu bdai te ajudo a fazer este mesmo sisteminha mais otimizadose você quiser é claro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quero com certeza!!!!!!!!Já está tudo salvo.... E já estou começando a fazer novo bd com as seguintes tabelas que já estão prontas:- tbmusicos (registro (autonumeração - chaveprimária), nome, sexo, dtnasc, email, ddd, telefone, cidade, estado, cep)- tbdados (instrumentos1, instrumentos2, instrumentos3, outrosinstr, estilo1, estilo2, estilo3, outrosestilos, formacao, experiencia, influencias, banda, senha, lembrete)Pensei em colocar a senha e o lembrete em uma tabela separada. Também pensei em separar as informações dos instrumentos e dos estilos (tbinstrumentos e tbestilos), mas não sei se vai ficar mais fácil ou vai complicar mais...

Compartilhar este post


Link para o post
Compartilhar em outros sites

talvez seja mais fácil a gente conversar por icq (103522326) ou pelo messenger (chevakt@hotmail.com).. se você preferir

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara não tenho acesso a nenhum tipo de chat, tudo priobido aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

então vamos continuar por aki mesmo.... ;) o que você acha das tabelas do bd que postei acima? como faço para configurar as chaves primárias e os relacionamentos entre as tabelas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

- tbmusicos (registro (autonumeração - chaveprimária), nome, sexo, dtnasc, email, ddd, telefone, cidade, estado, cep,)- tbdados (instrumentos1, instrumentos2, instrumentos3, outrosinstr, estilo1, estilo2, estilo3, outrosestilos, formacao, experiencia, influencias, banda, senha, lembrete)

ainda não tá bom, pois na tabela 2 tem campos que poderiam perfeitamente estar na tabela1a tabela 2 é para armazenar 1 ou mais registros do mesmo musico a minha ideia era ficar assim

- tbmusicos (registro (autonumeração - chaveprimária), nome, sexo, dtnasc, email, ddd, telefone, cidade, estado, cep,formacao, experiencia, influencias, banda, senha, lembrete)- tbdados (registro(este não seria autonumeração),instrumento, estilo)e a chave primaria seria os tres campos juntos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou fazendo como você postou então....Dúvida: No formulário de cadatramento tenho as opções instrumento1, isntrumento2 e instrumento3 e estilo1, estilo2 e estilo3 que são selecionadas por uma menu (lista). Como estas informações entrarão no BD?.. ou deixamos isso pra sequência da programação?qual o próximo passo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora é o seguinte, na pagina de cadastramento, você deverá tirar as opções instrumento2 e instrumento3 assim como as estilo 2 e 3, deixando apenas instrumento e estilo, assim você cadastrará no banco as informações do cara todas e depois voce mandará o cara para outra pagina onde ele dirá se quer cadastrar outro instrumento e outro estilo ou não, se quiser você cadastra senão encerra o cadastro deleai você terá um registro para o musico na tabela1e um ou mais registros na tabela dois,perceba que se o cara souber tocar 10 instrumentos diferentes em varios estilos diferentes, ele poderá cadastrar isso sem problemas pois o banco normalizado não o limita a tres opções apenas como antes

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.