Ir para conteúdo

POWERED BY:

Arquivado

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

rccintranf

Lançamento de Frequência - Curso / Escola

Recommended Posts

Bom Dia,

 

Estou desenvolvendo um sistema web em PHP + MySQL e necessito criar uma tela para que um 'professor' lance diariamente as presenças de diversos alunos. Como posso proceder para criar esse cadastro de forma facil para o usuario?

 

Lembrando que atualmente no papel ele possui uma planilha como abaixo:

 

ALUNO......DIA 10......DIA 11

 

JOÃO...........P................P

JOSÉ...........P................A

LUCAS.......FJ..............FJ

 

OBS: Os dias de aula serão pré-cadastrados conforme abertura da turma.

 

 

Desde já agradeço !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou te passar a logica, o resto fica facil...

  1. 1º Crie uma tabela "Turmas" com 3 campos
    ID - INT(5)
    Turma - Varchar(20)
    Ano - INT(4)
     
  2. 2ºCrie uma tabela "Disciplinas" com 3 campos
    ID - INT(2)
    Nome - Varchar(50)
    Turma - INT(5)
     
  3. 3º Crie uma tabela "Alunos" com 3 campos
    ID - INT(5)
    Nome - Varchar(100)
    Turma - INT(5)
     
  4. 3º Crie uma tabela "Frequencia" com 6 campos
    ID - INT(5)
    Disciplina - INT(2)
    Turma - INT(5)
    Aluno - INT(5)
    Data - Date
    Presenca - INT(1) => (0 para falta | 1 para presença)
     
  5. 3º Crie uma tabela "dias_letivos" com 2 campos
    ID - INT(5)
    Data - date

 

O sistema irá funcionar da seguinte forma:

 

 

  • Cada professor responsável pela sua disciplina.
  • Cadastre todos os dias letivos na tabela "dias_letivos".
  • Faça um sistema para a listagem desses dias.
  • Quando o Professor clicar em um dia mostre um formulário para escolher a turma, quando escolher a turma mostre um formulário dá seguinte forma.
     
    Aluno - Liste todos os alunos da tabela "Alunos".Coloque um campo Hidden com o ID do aluno
    Presença - Faça um Select de => Presente com valor 1, e Ausente com valor 0. Obs:Caso você dê um SUM no campo Presença ainda vai ter a quantidade de alunos que compareceram no dia.
    As outras informações (data, turma e Disciplina) mande via GET ou POST e poderá guardar em outro campo HIDDEN.
  • Após o Cadastro do formulário anterior você terá o relatório dos alunos naquele determinado dia...

 

Desculpe se eu não fui muito claro... Fiz o melhor que pude, qualquer duvida pode mandar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Dia,

 

Caro Cristin... quanto as tabelas beleza... eu nao to é conseguindo fazer a página para listar todos os alunos de uma turma e naquele dia escolher para cada um presente ou ausente.

 

No aguardo,

Rafael

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe a demora...

faça uma pagina para que o professor escolha:

 

O dia atual (o professor não precisa escolher pode ser pego pela função date do PHP)...

$dias_letivos = mysql_query("Select * From Dias_letivos");

Turmas... Pode ser feito via em um Select com as options

$turmas = mysql_query("Select * From Turmas");

Disciplina... Caso o professor esteja em uma area administrativa pode guardar a disciplina dele em uma Session ou cookie ou até mesmo em uma variavel.

$disciplina= mysql_query("Select * From Disciplinas");

 

-------------------------------------------------------------------------

Depois disso pode enviar todas essas informações via GET/POST para outra pagina e:

$alunos = mysql_query("Select * From alunos where turma='$_GET[turmaid]'");

 

faça a listagem dos alunos e na frente de cada aluno coloque um radio com o valor 1 para presente e 0 para ausente.Coloque um campo hidden para a data, a turma, e a disciplina que foi escolhida na pagina anterior.

não esqueça de colocar no radio o ID do aluno após enviar o formulário cadastre na tabela frequencia os seguintes valores

 

 

ID - auto increment

Disciplina - $disciplina que tava no campo hidden da pagina anterior.

Turma - $turma que tava no campo hidden da pagina anterior.

Aluno - ID do aluno

Data - data que o professor está cadastrando

Presenca - valor do radio group => (0 para falta | 1 para presença) para cada aluno.

 

 

Fiz tudo na pressa pode ser que haja alguns erros... É claro que o sistema não está 100% e pode ser melhorado, mais com essa logica fica mais facil. Espero ter ajudado, abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Dia Cristian (ou qualquer usuario),

 

Eu entendi a idéia mas eu não poderia usar um 'radio' pois posso ter diversas situações (Ex: P-presente,A-ausente, AJ-ausencia justificada,etc)

 

Nesse caso como que eu iria mandar para a outra pagina e consequentemente para o banco os valores corretos? Como iria ler os dados de cada aluno?

 

OBS: E como criar uma lista dos alunos e na frente deles colocar um 'campo'? (radio,input)

 

Desculpe-me ainda to aprendendo!

 

 

Obrigado,

Rafael

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou te passar somente a ideia... você implementa do seu jeito

<?
$alunos = mysql_query("Select * From alunos where turma='$_GET[turmaid]'");
$i = 1;
?>

<form name="form1" method="post" action="">
<?
while($dados = mysql_fetch_array($alunos)){
$aluno_id = $dados['id'];
$aluno_nome = $dados['nome'];
?>
<div class="aluno" style="width:100%; height:20px;">
<input type="hidden" name="aluno_id[<? echo $i; ?>]" value="<? echo $aluno_id; ?>">
<div style="height:20px; width:200px; float:left;" class="name"><? echo $aluno_nome; ?></div>
<div class="status" style="float:right; width:400px; height:20px">
 <p>
   <label>
     <input type="radio" name="aluno[<? echo $i; ?>]" value="0" checked>
     Ausente</label>
   <label>
     <input type="radio" name="aluno[<? echo $i; ?>]" value="1" >
     Presente</label>
    <input type="radio" name="aluno[<? echo $i; ?>]" value="2">
Ausente com justificativa<br>
 </p>
</div>
</div>
<?
$i++;
}
?>
<input type="hidden" name="total_de_alunos" value="<? echo $i; ?>">
</form>

 

 

 

 

 

Para cadastrar no Banco de dados faça algo parecido com isso:

 

 

<?
$total_alunos = $_POST['total_de_alunos'];
$aluno = $_POST['aluno_id$a'];
for($a=1;$a<=$total_alunos;$a++){
$aluno_id = $_POST["aluno$a"]
$query = "INSERT INTO Frequencia (Disciplina, Turma, Aluno, Data, Presenca)VALUES ('envie_essa_variavel', 'envie_essa_variavel', '$aluno_id', 'envie_essa_variavel', '$aluno[$a]')";
mysql_query($query);
}
?>

 

 

Observação: Não montei o sistema aqui... estou fazendo tudo as cegas, não testei o sistema

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, como já vi várias pessoas pedindo a mesma coisa, fiz um exemplo para dar um norte...

 

http://forum.imasters.com.br/topic/457429-exemplo-de-lancamento-de-frequencia-escolar/

 

Ajuste as credenciais do banco no arquivo lumine-conf.php.

 

@braços e fique com Deus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Hufersil...

 

Gostei do seu trabalho mas como havia postado no forum tenho as seguintes duvidas:

 

1) No poderiamos utilizar um checkbox aqui pois o aluno pode ter varias situações (Ex: presente, ausente, ausente com justificativa, etc)

 

2) No seu trabalho as datas são fixas por mês... mas no caso eu precisaria informar em quais datas as aulas ocorrerão pois por exemplo só tenho aulas aos sábados mas não são todos os sabados do mês por exemplo.

 

 

Desde ja agradeço,

Rafael

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então não está tão diferente não:

 

1 - troque as checkboxes por select's com os valores que você quer e altere na tabela "frequencia" o tipo de campo "presenca" de boolean para integer, e grave os valores conforme a necessidade

 

2 - crie uma tabela parecida com a de feriados, mas que contenha somente os dias que tem aula e mude o loop de onde os dias são criados.

 

@braços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde Hufersil,

 

Com relação a ter uma outra tabela tipo a Feriados beleza...

Nessa eu cadastrei as datas do meu curso. Só que aqui funcionaria da seguinte forma (planilha atual deles):

 

Nome....05/fev..12/fev..26/fev..04/mar..11/mar..25/mar..01/abr..08/abr..15/abr..22/abr..29/abr

Adriano..P......P

Luiz.......A......P

 

Ou seja, o ultimo dia de aula seria 29/abr e dessa forma sua logica nao poderia ser utilizada, alem do que eu nao selecionaria o mês de aula, mas somente a turma/disciplina.

 

 

No aguardo,

Rafael

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, a lógica continua funcionando.

Basta ao invés de fazer por mês, fazer pelo resultado da consulta de dias letivos.

 

@braços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde Hufersil,

 

Consegui ta quase saindo obrigado as dicas... a unica coisa que nao entendi é que no banco a data está no formado DD/MM/YYYY mas na hora que eu apresento na tela está ficando YYYY-MM-DD? Onde corrijo isso?

 

 

No aguardo,

Rafael Cintra

Compartilhar este post


Link para o post
Compartilhar em outros sites

php.net/date

procure também por date_format do mysql

 

@braços e fique com Deus

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola gostei muito do seu 'sistema' da presença... e ja to conseguindo aqui o que queria.... somente percebi no seu sistema que lançamos a presença, mas depois quando retorno a tela para lançar a presença em outra data o sistema nao busca a frequencia que ja estava lançada. Como proceder?

 

No aguardo,

Rafael

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.