Ir para conteúdo

Arquivado

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

fabio Avila

Escala de Arbitros

Recommended Posts

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

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso ele deve fazer o select dos jogos a onde tem o id do arbitro que esta logando

select * from jogos where arbitro='"&rs("id")&"'

dessa forma só vai trazer os jogos que aquele arbitro apitou ou vai apitar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual a situação atual do projeto

Compartilhar este post


Link para o post
Compartilhar em outros sites

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
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

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%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso, apenas faça as devidas alterações para suas variáveis

Compartilhar este post


Link para o post
Compartilhar em outros sites

o campo id é numerico?

 

se for quando a session estiver vazia este erro ocorrerá

Compartilhar este post


Link para o post
Compartilhar em outros sites

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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...

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.