Ir para conteúdo

POWERED BY:

Arquivado

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

Rodrigo Patricio

Consulta em 3 tabelas de um banco access

Recommended Posts

Olá pessoal, tudo beleza? Minha duvida é a seguinte:

 

Eu tô fazendo um mini livro de visitas para um site de um jogo, onde se faz a verificação em 3 tabelas de um banco de dados para poder logar: Capitões, Pilotos e administrador.

 

Só q eu só consigo fazer de só uma, e eu queria as 3 de uma vez:

 

O script q eu uso é o seguinte:

<%Option Explicitsub AbreConexaoSet Conexao = Server.CreateObject("AdoDb.Connection")Conexao.provider="Microsoft.Jet.OLEDB.4.0"Conexao.connectionstring=Server.Mappath("db\banco.mdb")Conexao.openend subsub FechaConexaoconexao.closeset conexao = nothingend subCall AbreConexaoresponse.buffer="true"DIM conexao, nome, senha, strSQL, rsSQLnome = Replace(Request.Form("nome"), "'", "''")senha = Replace(Request.Form("senha"), "'", "''")strSQL = "SELECT * FROM administrador WHERE nome ='" & nome & "' and senha ='" & senha & "'"Call abreConexaoSet rsSQL = conexao.Execute(strSQL)Session("usuario") = nomeIF not rsSQL.EOF THENsession("logado")="sim"Response.Redirect "livro/logado.asp"elseResponse.Redirect "erro.html"end if%>

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw smith, deve ser desse jeito mesmo, eu tentei aqui mas não consegui, da o seguinte erro:

 

 

Microsoft JET Database Engine (0x80040E10)

Nenhum valor foi fornecido para um ou mais parâmetros necessários.

/site_esquadrao3/recados_logar.asp, line 24

 

 

Já conferi os nomes dos campos do form e tava tudo certo, o script q eu tô usando (já modificado é o seguinte)

 

<%Option Explicitsub AbreConexaoSet Conexao = Server.CreateObject("AdoDb.Connection")Conexao.provider="Microsoft.Jet.OLEDB.4.0"Conexao.connectionstring=Server.Mappath("db\banco.mdb")Conexao.openend subsub FechaConexaoconexao.closeset conexao = nothingend subCall AbreConexaoresponse.buffer="true"DIM conexao, login, senha, strSQL, rsSQLlogin = Replace(Request.Form("login"), "'", "''")senha = Replace(Request.Form("senha"), "'", "''")strSQL = "SELECT coluna.pilotos_alistados,coluna.capitao,coluna.administrador FROM pilotos_alistados,capitao,administrador WHERE coluna.pilotos_alistados.login ='" & login & "' and coluna.pilotos_alistados.senha ='" & senha & "' and coluna.capitao.login ='" & login & "' and coluna.capitao.senha ='" & senha & "' and coluna.administrador.login ='" & login & "' and coluna.administrador.senha ='" & senha & "'"Call abreConexaoSet rsSQL = conexao.Execute(strSQL)Session("usuario") = loginIF not rsSQL.EOF THENsession("logado")="sim"Response.Redirect "recados/home.asp"elseResponse.Redirect "recados_erro.asp"end if%>

Dêem uma luz aqui, pq num sei o q eu faço (sou bem iniciante).

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

caraca...esse seu sql tá muito estranhoquais as tabelas e os campos que cada uma tem?quais os campos são chave primária e quais chave estrangeira?quais os campos que vão receber os parametros?coloca essas informações ai que tento te dar essa força ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

É um sistema de login, tem a pagina em html q fica o form, com os campos login e senha, aê clicka em logar ai vai pra essa pagina, onde faz a consulta na tabela administrador, pilotos_alistados e capitao nos campos login e senha do banco de dados para conferir se ele está cadastrado, caso esteja em algumas dessas tabelas ele seria reedirecionado para a pagina inicial de livro de recados.

 

Ps: Não tem nenhum campo com chave primaria nem estrangeira.

 

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo....Em qual banco que você esta fazendo essa consulta?você sabe usar apelidos nas tabelas?Tenta testar esta consulta no Access, pra ver se ele vai funcionar no ACCESS, testando no modo SQL de consultas...FlwChuck Norris

Compartilhar este post


Link para o post
Compartilhar em outros sites

O banco q eu tô usando é Access, esse sistema de login q eu tô usando funciona, mas só quando a consulta é em uma tabela, só q eu quero modificar para verifacar em varias tebelas.Ps: Como assim apelido na tabela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por exemplo sabe onde você informa as tabelas...Administrador por exemplo, ao invés de você toda hora em que for se referir a tabela usar o nome dela você utiliza o apelido, a sintaxe é assim:nome da tabela as apelidoadiministrador as a Aí na hora em que for fazer referencia a tabela você coloca o apelido ao inves do nome completo...Conseguiu entender, ou num fui claro? Se for fala ae, que eu te mostro um exemplo meu...Flw

O banco q eu tô usando é Access, esse sistema de login q eu tô usando funciona, mas só quando a consulta é em uma tabela, só q eu quero modificar para verifacar em varias tebelas.Ps: Como assim apelido na tabela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara....você tá tendo trabalho redobrado, mas a adaptação pro seu seria assim

 

set rs=con.execute("select login,senha from administrador where login='"&login&"' and senha='"&senha&"'")if not rs.eof thenresponse.redirect("administrador.asp")elseset rs=con.execute("select login,senha from pilotos_alistados where login='"&login&"' and senha='"&senha&"'")end ifif not rs.eof thenresponse.redirect("pilotos_alistados.asp")elseset rs=con.execute("select login,senha from capitao where login='"&login&"' and senha='"&senha&"'")end ifif not rs.eof thenresponse.redirect("capitao.asp")elseresponse.write("login inválido")end if

 

mas porque você não coloca todos os usuários na mesma tabela e determina oo tipo de acesso? ficaria muito mais facil de trabalhar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, vlw jonathandj e Chuck Norris!

 

jonathandj: Obrigado cara, era isso mesmo que eu queria, muito obrigado

 

OBS: Eu num coloquei todos os usuarios na mesma tabela, pq como eu já disse, sou muito iniciante, tô começado a aprender agora, e num sabia q dava pra fazer isso. Mas obigado pela sua dica, na proxima vez q presisar fazer um trabalho assim, vou fazer desse jeito. http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

 

Chuck Norris!: Hum... Entendi, facilita bastante pq não tem q ficar escrevendo tudo de novo, muito obrigado, foi uma boa dica pra mim, vai me ajudar bastante.

 

 

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

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.