Ir para conteúdo

Arquivado

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

valmello

[Resolvido] Session

Recommended Posts

Bom dia a todos!

 

Queria saber como faço para recuperar dados através de sessions de tabelas diferentes sem preder a relação das informações.

 

Explicando melhor.

Na página de acesso eu tenho o seguinte:

 

<%@ Language=VBScript %>
<% 'Conexão com o banco de dados
conexao="DBQ=D:\localhost\sys_systemcredi\banco\bdSC.mdb;Driver={Microsoft Access Driver (*.mdb)}"
Set DB = Server.CreateObject("ADODB.Connection")
DB.Open conexao
Email=(Request.QueryString("Email"))
senha=(Request.QueryString("senha"))
set cliente=DB.Execute("SELECT * FROM Cliente WHERE Email='"&Email&"' AND senha='"&senha&"' ")

if cliente.eof then
Response.Redirect"erro.asp"
end if
session("nivel_acesso") = cliente("nivel")
If session("nivel_acesso") = "Bloqueado" Then
Response.Redirect"bloq.asp"

else
Session("Email")=Email
Session("Nome")= cliente("Nome")
Session("Endereco")= cliente("Endereco)... e por aí vai
Response.Redirect"indexcli.asp"
end if
DB.close
%>

Porém ao passar para outra página eu preciso visualizar dados de uma TABELA chamada TAXAS que está relacionada à TABELA CLIENTE.

Se eu fizer um Recordset só retornar os dados sempre do primeiro registro da tabela taxas para todos os usuarios autenticados e se eu colocar a session vai dar erro porque a mesma não foi apontada na pagina de acesso que refere-se ao código acima.

 

Aí vem a pergunta: Como faço para incluir tabelas diferentes em uma mesma session sem perder a integridade referencial de dados das tabelas?

Desde já agradeço a quem responder a esta questão.

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao consegui entender seu problema

 

se voce tem os valores em session pode usa-los sim

 

e se sao dados relacionados deve sim pegar os dados corretos se voce fizer a consulta correta

Compartilhar este post


Link para o post
Compartilhar em outros sites

como tentou fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixa eu tentar explicar melhor:

 

O codigo está assim agora:

 

<%@ Language=VBScript %>

<% 'Conexão com o banco de dados

conexao="DBQ=D:\localhost\sys_systemcredi\banco\bdSC.mdb;Driver={Microsoft Access Driver (*.mdb)}"

Set DB = Server.CreateObject("ADODB.Connection")

DB.Open conexao

login=(Request.QueryString("login"))

senha=(Request.QueryString("senha"))

set cliente=DB.Execute("SELECT * FROM Usuarios, Cliente, Taxa, Sacado WHERE login='"&login&"' AND senha='"&senha&"' ")

 

if cliente.eof then

Response.Redirect"erro.asp"

end if

session("nivel_acesso") = cliente("nivel")

If session("nivel_acesso") = "Bloqueado" Then

Response.Redirect"bloq.asp"

 

else

Session("login")=login

Session("nome_cliente")= cliente("nome_cliente")

Session("endereco_cliente")= cliente("endereco_cliente)

Session("taxa1")= cliente("taxa1")... e por aí vai

Response.Redirect"indexcli.asp"

end if

DB.close

%>

 

Eu tenho um banco de dados com as seguintes tabelas:

USUARIOS, CLIENTES, TAXAS, SACADOS

O ID da tabela de usuario está relacionado com o ID da tabela cliente e a taxa está relacionada ao cliente. Ponto!

Eu criei o código acima para acesar o banco com o login e a senha do usuario e remeter para a pagina seguinte (indexcli.asp). (Funcionando certinho a parte do usuario logar)

Agora o problema:

Quando eu coloco as sessions referente à tabela USUARIO os dados acompanham as informações normalmente, mas se tiver uma session referente a algum dado da tabela cliente somente aparece o primeiro registro desta tabela.

Exemplo:

*CASAS BAHIA é o primeiro registro da tabela CLIENTE, então...

 

Efetuando o login com o usuario JOÃO(tabela usuario) que está relacionado com o cliente CASAS BAHIA(tabela cliente)

Resultado: Na pagina após o login aparece Olá JOÃO(session usuario da tabela USUARIOS) você é responsavel pelo cliente CASAS BAHIA(session nome_cliente da tabela CLIENTE)

 

Efetuando o login com o usuario JOSÉ(tabela usuario) que está relacionado com o cliente CASAS SÃO PAULO(tabela cliente)

Resultado: Na pagina após o login aparece Olá JOSÉ(session usuario da tabela USUARIOS) você é responsavel pelo cliente CASAS BAHIA(session nome_cliente da tabela CLIENTE)

 

O mesmo acontece com as taxas...

 

=-=-=-=

 

A forma que funcionaria na qual eu testei foi a seguinte:

Cirei uma consulta no banco de dados com todas as informações necessárias para as sessions que eu quero. Daí funcionou parcialmente. Porque parcialmente?

 

Resposta:

 

Escrevi o select assim:

 

set cliente=DB.Execute("SELECT * FROM consulta WHERE login='"&login&"' AND senha='"&senha&"' ")

 

Só que aí surgiu o problema que é pelo qual estou solicitando ajuda.

 

Os dados da tabela SACADOS só vão para o banco depois que o usuario loga no sistema, pois é este quem vai cadastrar o seu sacado depois da autenticação.

Como o login e a senha serão verificados a partir deste momento na TABELA CONSULTA e os sacados ainda não foram cadastrados, a tabela de consulta fica vazia e consequentemente o sistema de login não permite acesso porque os campos de verificação de login e senha nesta tabela de consulta estão vazios.

 

=-=-=-=

Ufa!

Desculpe as repetições escessivas de palavras. Foi para tentar deixar o mais claro possível.

Acho que agora dá para entender mais ou menos...

 

Creio que o meu erro está sendo na forma de escrever o SELECT, onde não estou sabendo fazer com que as sessions sejam lidas corretamente.

Fico no aguardo de uma luz...

Tenta me ajudar aí irmão... Valeu mesmo cara pela atenção...

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema é que está misturando tudo

 

primeiro faça o login normal so testanto login e senha

 

se o cara logar voce seleciona os dados que precisa

 

e o erro que está acontecendo é que voce nao esta relacionando as tabelas está slecionando de qualquer jeito tudo junto sem dizer o que relaciona com o que

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mario,

 

voltei aqui somente para informar que consegui resolver com o INNER JOIN relacionando as tabelas como você deu a dica.

Valeu mesmo irmão!

 

Grande abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa

 

Parabnes pela soluçã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.