Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola amigos
Estou finalizando um sistema para escalas de abirtros , ele possue as seguintes tabelas:
ARBITROS( NOME, CPF, TELEFONE)
TABELA DE JOGOS ( DIA DO JOGO, HORARIO , EQUIPE X EQUIPE B, ARBITRO
LOGIN : NOME , CPF
Minha dúvida é na area de login como eu faço para que o arbitro acesse somente os Jogos que eu lancei para ele ..
Obrigadp
Todas as tabelas que você criar no banco de dados devem ter um ID.
Para individualizar o registro.
Na tabela Arbitros você tem que por um ID_Arbitro, Tipo INT.
Na tabela Jogos você tem que usar o ID_Arbitro como Chave Estrangeira, Foreign Key.
Daí na hora do cadastro de Jogos, você busca na tabela Arbitros os ID's e os Nomes, e salva na tabela Jogos o ID do Arbitro.
Depois do Login você pega e faz o Select que o usuário acima falou, mas no final sem as aspas, visto que é INT e não String, Varchar.
Isso ai, primeiro passo é vc ter todos os arbitros cadastrados no seu banco de dados.
Em seguida quando vc for cadastrar o jogo vc escolhe qual arbitro que sera daquele jogo.
ou na tabela crie um campo do tipo flag onde irá conter apenas os jogos que ele podem ver, e na hora do SELECT traga no Where apenas os que ele é associado.
ou na tabela crie um campo do tipo flag onde irá conter apenas os jogos que ele podem ver, e na hora do SELECT traga no Where apenas os que ele é associado.
Ola Amigos ,
Primeramente obrigado pelas dicas.. minha estrutura ficou assim :
Tabela Usuarios
Cod
Usuario
Senha
Tabela Arbitros
Id_Arbitro
Nome
Cpf
Tabela Jogos
Data
Mandante
Visitante
Horario
Id_Arbitro(Busca da tabela Arbitros)
Dae ele vai se logar e ser direcionado para a Pagina JOGOS , neste página eu estou tendando usar o seguinte:
>
<%
if session("usr_log_ok") = "" and session("usr_nivel") = "" then
response.redirect "login.asp"
end if
SQL2 = "select * from usuarios where id = "&session("usr_log_ok")&" and nivel = '"&session("usr_nivel")&"' "
Set RS2 = conexao.Execute(SQL2)
if not RS2.eof then
usuario = RS2("usuario")
id = RS2("id")
Arbitro= RS2("Id_Arbitro")
End if
%>
Mas n esta dando certo.....
Na sua estrutura da tabela usuario nao estou vendo as colunas "id" e "nivel".
Na sua estrutura da tabela usuario nao estou vendo as colunas "id" e "nivel".
Descula a falha .rs.. bom agora com os campos na tabela após se logar ao direcionar a pagina da a seguinte msg:
Microsoft JET Database Engine error '80040e07'
Data type mismatch in criteria expression.
/teste/inicio.asp, line 14
Codigo Completo
<%if session("usr_log_ok") = "" and session("usr_nivel") = "" thenresponse.redirect "login.asp"end if'Criamos a conexao com o banco de dados.set conexao = Server.CreateObject("ADODB.Connection")conexao.provider= "Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("escola.mdb")&";"conexao.open'Vamos buscar o Login e senha no banco de dadosSQL = "select * from usuarios where id = "&session("usr_log_ok")&" and nivel = '"&session("usr_nivel")&"' "Set RS = Conexao.Execute(SQL)Set RS = conexao.Execute(SQL)if not RS.eof thenusuario = RS("usuario")id = RS("id_arbitro")End if%>
Ola amigos,
Alguém pode me dar uma força para finalizar este projeto ..
Obrigado
Qual a situação atual do projeto
Xanburzum,
O projeto está parado após se logar ele da o erro :
Microsoft JET Database Engine error '80040e07'
Data type mismatch in criteria expression.
/teste/inicio.asp, line 14
<%
if session("usr_log_ok") = "" and session("usr_nivel") = "" then
response.redirect "login.asp"
end if
'Criamos a conexao com o banco de dados.
set conexao = Server.CreateObject("ADODB.Connection")
conexao.provider= "Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("escola.mdb")&";"
conexao.open
'Vamos buscar o Login e senha no banco de dados
SQL = "select * from usuarios where id = "&session("usr_log_ok")&" and nivel = '"&session("usr_nivel")&"' "
Set RS = Conexao.Execute(SQL)
Set RS = conexao.Execute(SQL)
if not RS.eof then
usuario = RS("usuario")
id = RS("id_arbitro")
End if
%>
De um "Response.Write" na sua string do SQL para ver o que está passando.
Pois está com tipos de dados incompatíveis.
Verifique as "aspas simples" e "aspas duplas" da session ("usr_log_ok") e da session ("usr_nivel"), pois dependendo do campo de sua base (numerico ou texto) pode dar erro.
Esse erro geralmente acontece quando você faz uma das seguintes coisas:
tente inserir uma data no bd com 'delimitadores;
tente inserir uma data no SQL Server com # delimitadores;
tente inserir uma data no Access ou SQL Server sem delimitadores; ou,
tente inserir uma data mal formatada.Amigos,
Encontrei o erro era na formatação da data , só que ele não ta filtrando de acordo com o usuario ou seja está mostrando todos os registro sendo que deveria mostrar apenas do usuario ..
verifique sua SQL. Para consulta de user, eu prefiro fazer consultando primeiro o user e com o user validado depois verificar a senha, ou seja, não fazendo tudo na mesma string SQL, isso ajuda a evitar sql inject. Olha este exemplo:
<!--#include file="conn/conexao1.asp"-->
<%
call abreconexao
'cria o recordset
Set rs=Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM login WHERE login='"&varlogin&"'"
rs.open SQL,conexao,1,3
if rs.eof then
response.redirect("logincli_form_treina.asp?msgeof=3")
else
if Lcase (varsenha) <> Lcase(rs("senha")) then
response.redirect("logincli_form_treina.asp?msgeof=4")
session("logado")=False
else
session("logado")=True
session("senha")=varsenha
session("login")=varlogin
response.Redirect("administracao_treina.asp")
end if
end if
set rs=nothing
call fechaconexao%>
Eu substituo a minha sql atual por seu exemplo isso?
isso, apenas faça as devidas alterações para suas variáveis
o campo id é numerico?
se for quando a session estiver vazia este erro ocorrerá
Pessoal
Fiz o seguinte na consulta de jogos coloquei o seguinte critério
& "and CPF = '" & session("Arbitro") & "' " _
Porém ele não filtra continua mostrando todo mundo ..
Estranho é que tenho um outro exemplo que filtra pela UNIDADE que do mesmo filtro ele funciona normamente...
Bom dia;
a
session("Arbitro") esta pegando o CPF do arbitro?
Se não tiver não vai da certo mesmo.
Att;
Gilberto
A sessão está assim:
<%
if session("usr_log_ok") = "" and session("usr_nivel") = "" then
response.redirect "login.asp"
end if
set conexao = Server.CreateObject("ADODB.Connection")
conexao.provider= "Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("arbitragem.mdb")&";"
conexao.open
SQL = "select * from usuarios where id_usuario ="&session("usr_log_ok")
Set RS = Conexao.Execute(SQL)
if not RS.eof then
login = RS("login_usuario")
id_usuario= RS("id_usuario")
Arbitro= RS("arbitro")
End if
%>
E mesmo eu deixando na consulta :
& "and Arbitro = '" & session("Arbitro") & "' " _
Não funciona...
mas tem algum valor nesta session? teste ai
Como testo a session mesmo?
Escreve o valor que ela está carregando
Testa assim
response.write(session("Arbitro"))
Dai vai mostrar na tela se é esse realmente o CPF que esta sendo passado.
Att;
Não retorna nada....
Então, pelo que eu to reparando nos codigos que você tem postado não existe a session("Arbitro").
Se ela não existe não vai ter nenhum retorno.
Posta o select todo que você usando a session("Arbitro") pois ai da para ajudar melhor.
Att;