DÚVIDA: RELATÓRIO A PARTIR DE FREQUÊNCIA
Olá amigos, gostaria de uma grande ajuda de vocês;
Sou estudante e iniciante de programação Web e estou com uma dúvida há dias, já pesquisei em vários fóruns, mas não consegui achar uma solução para o meu problema... Então resolvi pedir a ajuda de vocês com mais experiência que eu.
(Tentarei ser o máximo organizado possível para melhor entendimento, desculpe o tamanho do texto)
Estou desenvolvendo um sistema a nível de aprendizado para a organização de membros, grupos e Frequência. O Sistema baseia-se em:
· Cadastro de membros;
· Preenchimento de frequência;
· Relatórios;
A parte de Cadastro e Frequência já está OK (Desenvolvidas), mas o último passo que são os relatórios dessas frequências ainda não consegui resolver. Pois bem, vamos lá!
1.PÁGINA DE RELATÓRIOS:
Estou recebendo como parâmetro da página anterior o cod_celula, e irá aparecer a lista de membros da respectiva célula.
Parto do principio que quero selecionar só as frequências do Mês 05 (Irei fazer um MENU LIST na página anterior para direcionar o mês referência de escolha)
1.1 PROBLEMA: não consigo fazer aparecer a frequência dos membros em cada coluna de suas respectivas datas, já tentei de tudo e até agora nada.
Expectativa (Excel):
/applications/core/interface/imageproxy/imageproxy.php?img=http://i66.tinypic.com/34hdz88.jpg&key=5e56a9191fe9ef8102b689547843080eac33b683db00b5a50bbac384764e0084" alt="34hdz88.jpg" />
Realidade (PHP):
/applications/core/interface/imageproxy/imageproxy.php?img=http://i67.tinypic.com/24np382.jpg&key=6b4102a6c93dc572e17c00fd79511305ca76c910dcb65212dc2b613f83187602" alt="24np382.jpg" />
2. Banco de Dados
Ø MEMBRO
· Cod_membro
· Nome
· ... (informações em gerais)
· Cod_celula
Ø Célula
· Cod_celula
· Nome
Ø Frequência
· Cod_frequencia
· Data
· ...(Informações em gerais)
· Cod_celula
Ø Membro_Frequência
· Cod_membro
· Presença (0=F;1=P)
· Cod_frequencia
OBS: Cada membro possui uma PRESENÇA em (P=Presente e F=Falta) para cada frequência realizada
OBS2: É muito similar em uma Frequência escolar onde todo o dia o Professor lança a frequência de cada aluno, e o aluno possui uma (Falta ou Presença) de determinado dia;
ü Para melhor explicação Célula pode ser substituído por TURMA e MEMRBO por ALUNO.
OBS3: No sistema que estou criando as reuniões são semanais.
3. Código PHP – Página de Relatórios
<?php require_once('Connections/ChurchApp.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$colname_rs_relatorio = "-1";
if (isset($_GET['cod_celula'])) {
$colname_rs_relatorio = $_GET['cod_celula'];
}
mysql_select_db($database_ChurchApp, $ChurchApp);
$query_rs_relatorio = sprintf("SELECT membro.nome, frequencia.cod_frequencia, frequencia.data, membro_frequencia.presenca FROM membro, frequencia, membro_frequencia WHERE frequencia.cod_celula = %s AND membro.cod_membro = membro_frequencia.cod_membro AND MONTH(frequencia.data) = 05 AND membro_frequencia.cod_frequencia = frequencia.cod_frequencia", GetSQLValueString($colname_rs_relatorio, "int"));
$rs_relatorio = mysql_query($query_rs_relatorio, $ChurchApp) or die(mysql_error());
$row_rs_relatorio = mysql_fetch_assoc($rs_relatorio);
if (isset($_GET['totalRows_rs_relatorio'])) {
$totalRows_rs_relatorio = $_GET['totalRows_rs_relatorio'];
} else {
$all_rs_relatorio = mysql_query($query_rs_relatorio);
$totalRows_rs_relatorio = mysql_num_rows($all_rs_relatorio);
}
$colname_rs_membros = "-1";
if (isset($_GET['cod_celula'])) {
$colname_rs_membros = $_GET['cod_celula'];
}
mysql_select_db($database_ChurchApp, $ChurchApp);
$query_rs_membros = sprintf("SELECT * FROM membro WHERE cod_celula = %s", GetSQLValueString($colname_rs_membros, "int"));
$rs_membros = mysql_query($query_rs_membros, $ChurchApp) or die(mysql_error());
$row_rs_membros = mysql_fetch_assoc($rs_membros);
$totalRows_rs_membros = mysql_num_rows($rs_membros);
$colname_rs_qtd_frequencia = "-1";
if (isset($_GET['cod_celula'])) {
$colname_rs_qtd_frequencia = $_GET['cod_celula'];
}
mysql_select_db($database_ChurchApp, $ChurchApp);
$query_rs_qtd_frequencia = sprintf("SELECT COUNT(cod_frequencia) FROM frequencia WHERE cod_celula = %s and MONTH(frequencia.data) = 05", GetSQLValueString($colname_rs_qtd_frequencia, "int"));
$rs_qtd_frequencia = mysql_query($query_rs_qtd_frequencia, $ChurchApp) or die(mysql_error());
$row_rs_qtd_frequencia = mysql_fetch_assoc($rs_qtd_frequencia);
$totalRows_rs_qtd_frequencia = mysql_num_rows($rs_qtd_frequencia);
$colname_rs_celula = "-1";
if (isset($_GET['cod_celula'])) {
$colname_rs_celula = $_GET['cod_celula'];
}
mysql_select_db($database_ChurchApp, $ChurchApp);
$query_rs_celula = sprintf("SELECT * FROM celula WHERE cod_celula = %s", GetSQLValueString($colname_rs_celula, "int"));
$rs_celula = mysql_query($query_rs_celula, $ChurchApp) or die(mysql_error());
$row_rs_celula = mysql_fetch_assoc($rs_celula);
$totalRows_rs_celula = mysql_num_rows($rs_celula);
$colname_rs_datas_frequencia = "-1";
if (isset($_GET['cod_celula'])) {
$colname_rs_datas_frequencia = $_GET['cod_celula'];
}
mysql_select_db($database_ChurchApp, $ChurchApp);
$query_rs_datas_frequencia = sprintf("SELECT frequencia.data FROM frequencia WHERE cod_celula = %s and MONTH(frequencia.data) = 05", GetSQLValueString($colname_rs_datas_frequencia, "int"));
$rs_datas_frequencia = mysql_query($query_rs_datas_frequencia, $ChurchApp) or die(mysql_error());
$row_rs_datas_frequencia = mysql_fetch_assoc($rs_datas_frequencia);
$totalRows_rs_datas_frequencia = mysql_num_rows($rs_datas_frequencia);
$colname_rs_mes_referencia = "-1";
if (isset($_GET['cod_celula'])) {
$colname_rs_mes_referencia = $_GET['cod_celula'];
}
mysql_select_db($database_ChurchApp, $ChurchApp);
$query_rs_mes_referencia = sprintf("SELECT MONTH(frequencia.data) FROM frequencia WHERE cod_celula = %s", GetSQLValueString($colname_rs_mes_referencia, "int"));
$rs_mes_referencia = mysql_query($query_rs_mes_referencia, $ChurchApp) or die(mysql_error());
$row_rs_mes_referencia = mysql_fetch_assoc($rs_mes_referencia);
$totalRows_rs_mes_referencia = mysql_num_rows($rs_mes_referencia);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/modelo.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Relatório Presença Mensal</title>
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" -->
<link href="css/layout.css" rel="stylesheet" type="text/css" />
<!-- InstanceEndEditable -->
</head>
<body>
<div id="principal">
<div id="topo">
<p><!--<img src="../images/quandragular_logo.png" width="80" height="77" /> --> <img src="images/Catedral%20da%20Adoração%20-%20Letreiro%20Teste%20(espiral%20flame%20all%20color).png" width="230" height="80"/></p>
</div>
<!-- InstanceBeginEditable name="conteudo" -->
<div id="conteudo"><p> </p>
<form id="form1" name="form1" method="post" action="">
<strong>Mês de Referência: <?php echo "0".$row_rs_mes_referencia['MONTH(frequencia.data)'] ?></strong>
<table width="600" border="1" cellspacing="5" bgcolor="#FFFFFF">
<tr align="center">
<td width="400" align="center">Nome:</td>
<!-- Repetição para aparecer todas as datas que contém frequência de uma determinada célula-->
<?php do{?>
<td align="center"><?php echo date('d/m/Y',strtotime($row_rs_datas_frequencia['data'])); ?></td>
<?php }while($row_rs_datas_frequencia = mysql_fetch_assoc($rs_datas_frequencia))?>
<td width="200" align="center">Total Presença Membros Mensal</td>
<td width="200" align="center">Total Falta Membros Mensal</td>
</tr>
<?php do{ ?>
<tr align="center">
<!-- Imprimi a quantidade de alunos e as frequências -->
<td width="400" align="center"><?php echo $row_rs_membros['nome']; ?></td>
<!-- **********************************************************************
****************************************************************************
AQUI ESTÁ O PROBLEMA, NÃO ESTOU CONSEGUINDO FAZER APARECER A PRESENÇA DAS OUTRAS DATAS -->
<?php $countP=0; $countF=0; //$count=0; ?>
<?php //while($count<$totalRows_rs_datas_frequencia){?>
<!-- REPETI A COLUNA 3 VEZES APENAS PARA UMA MANEIRA ESTÉTICA DE EXPLICAR COMO DEVERIA FICAR -->
<td align="center"><?php if($row_rs_relatorio['presenca']>=1){ $countP++; echo "P"; }else{ $countF++; echo "F";} ?></td>
<td align="center"><?php if($row_rs_relatorio['presenca']>=1){ $countP++; echo "P"; }else{ $countF++; echo "F";} ?></td>
<td align="center"><?php if($row_rs_relatorio['presenca']>=1){ $countP++; echo "P"; }else{ $countF++; echo "F";} ?></td>
<?php //$count++; $row_rs_relatorio = mysql_fetch_assoc($rs_relatorio); }?>
<td align="center"><?php echo $countP ?></td>
<td align="center"><?php echo $countF ?></td>
</tr>
<?php }while($row_rs_membros = mysql_fetch_assoc($rs_membros) and $row_rs_relatorio = mysql_fetch_assoc($rs_relatorio)) ?>
<tr align="center">
<td align="center">Total Presentes por data</td>
<?php $count2=0; while($count2<$totalRows_rs_datas_frequencia){ ?>
<td> </td>
<?php $count2++; } ?>
</tr>
</table>
<p><a href="Celula_informacoes.php?cod_celula=<?php echo $row_rs_celula['cod_celula']; ?>">Voltar</a> </p>
</form>
</div>
<!-- InstanceEndEditable -->
<div id="rodape">Copyright © - Todos os direitos reservados por Rafael Duarte<br /></div>
</div>
</body>
<!-- InstanceEnd --></html>
<?php
mysql_free_result($rs_relatorio);
mysql_free_result($rs_membros);
mysql_free_result($rs_qtd_frequencia);
mysql_free_result($rs_celula);
mysql_free_result($rs_datas_frequencia);
mysql_free_result($rs_mes_referencia);
?>Discussão (2)
Carregando comentários...