Submenu Matérias
De modo análogo ao submenu "Cursos", esta seção do menu também exibe duas caixas de opções que determinam a operação do botão Enter e, logo abaixo, apresenta o botão Listar.
Botão Listar - este botão executa o programa "lista_materias.php" que emite o relatório das matérias ou disciplinas cadastradas, conforme exemplo:
Relatório: Listagem de matérias
Programa: lista_materias.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Lista matérias</title> <link rel="stylesheet" href="alunos.css" type="text/css" /> </head> <body bgcolor="#EEEEFF"> <div id=area_geral> <table width="750" border="0" bgcolor="#000033" cellspacing="0" cellpadding="0"> <tr><td> </td></tr> <tr> <td><font size="4" color="#FFFFFF"><strong> Controle de Alunos </strong></font></td> </tr> <tr><td> </td></tr> </table> <table width="750" border="0" bgcolor="#6699FF"> <tr><td><input type="button" value=" Voltar " onclick="window.location='index.html'"></td></tr> <tr> <td> <table width="500" border="0" bgcolor="#DADDFE" align="center" cellspacing="0" cellpadding="3" rules="cols"> <tr> <td colspan="5" align="center" class="f1">Listagem de matérias</td> </tr> <tr><td colspan="5"> </td></tr> <tr align="center"> <td width="40"> </td> <td width="20"><strong>Código</strong></td> <td width="80"><strong>descrição</strong></td> <td width="80"><strong>Horas-aula</strong></td> <td width="40"></td> </tr> <?php include("conecta.inc"); $sql="SELECT * FROM materias ORDER BY cod_mat"; $res=mysql_query($sql); while($registro=mysql_fetch_row($res)) { echo "<tr>"; echo "<td> </td>"; echo "<td align='right'>$registro[0] </td>"; echo "<td> $registro[1]</td>"; echo "<td> $registro[2]</td>"; echo "<td> </td>"; echo "</tr>"; } mysql_close($conexao); ?> <td> </td> </table></td> </tr> <tr><td> </td></tr> </table> </div> </body> </html>
|
O botão Listar ativa o programa acima que relaciona todos os registros contidos na tabela "materias", efetuando a conexão com o banco de dados e a impressão da tabela. Segue a transcrição das instruções do programa que executa essa tarefa:
include("conecta.inc");
$sql="SELECT * FROM materias ORDER BY cod_mat";
$res=mysql_query($sql);
while($registro=mysql_fetch_row($res)) {
echo "<tr>";
echo "<td> </td>";
echo "<td align='right'>$registro[0] </td>";
echo "<td> $registro[1]</td>";
echo "<td> $registro[2]</td>";
echo "<td> </td>";
echo "</tr>";
}
mysql_close($conexao);
|
A variavel $registro recebe o valor de cada linha da tabela através da instrução mysql_fetch_row($res). A instrução while controla a repetição, executando as instruções echo enquanto a condição for verdadeira.
Botão Enter - o botão enter proporciona condições de inserção e eliminação de cursos, executando o seguinte programa:
Programa: admin_materias.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Administra matérias</title> <link rel="stylesheet" href="alunos.css" type="text/css" /> </head> <?php $oper=$_POST['oper4']; ?> <body bgcolor="#EEEEFF"> <div id=area_geral> <table width="750" border="0" bgcolor="#000033" cellspacing="0" cellpadding="0"> <tr><td> </td></tr> <tr> <td><font size="4" color="#FFFFFF"><strong> Controle de Alunos </strong></font></td> </tr> <tr><td> </td></tr> </table> <table width="750" border="0" bgcolor="#6699FF"> <tr><td><input type="button" value=" Voltar " onclick="window.location='index.html'"></td></tr> <tr> <td> <table width="600" border="0" bgcolor="#DADDFE" align="center" cellspacing="0" cellpadding="3" rules="cols"> <?php if($oper=="exc"){ echo "<tr><td colspan='5' align='center'> <font size='3'>Exclusão de matérias<font></td></tr>"; }else echo "<tr><td colspan='5' align='center'> <font size='3'>Inclusão de matérias<font></td></tr>"; ?> <tr><td colspan="5"> </td></tr> <tr align="center"> <td width="30"> </td> <td width="30"><strong>Código</strong></td> <td width="95"><strong>descrição</strong></td> <?php if($oper=="exc"){ echo "<td width='90'><strong> Horas-aula Exc.</strong></td>"; }else echo "<td width='90'><strong>Horas-aula</strong></td>"; ?> <td width="30"></td></tr> <tr><td> </td> <td colspan="3"> <?php if ($oper=="inc"){ echo "<form name='form1' method='post' action='inc_materias.php'>"; for($i=0;$i<5;$i++){ ?> <div> <input type="text" size="3" name="<?php echo 'codmat'.$i;?>" value="" /> <input type="text" size="25" name="<?php echo 'descmat'.$i;?>" value="" /> <input type="text" size="15" name="<?php echo 'aulamat'.$i;?>" value="" /> </div> <?php } ?> <p align="right"> <input type="submit" name="envia" id="envia" value=" Incluir " /> <input type="reset" value=" Limpar "/> </p> </form> </td> <td> </td></tr> <?php }else{ echo "<form name='form2' method='post' action='exc_materias.php'>"; include("conecta.inc"); $sql=("SELECT * FROM materias ORDER BY cod_mat"); $res=mysql_query($sql); $n=mysql_num_rows($res); for($i=0;$i<$n;$i++){ $reg=mysql_fetch_array($res); $cod_mat=$reg["cod_mat"]; $desc_mat=$reg["desc_mat"]; $aula_mat=$reg["aula_mat"]; ?> <div> <input type="text" size="3" name="<?php echo 'cod'.$i;?>" value="<?php echo $cod_mat;?>" readonly="" /> <input type="text" size="25" name="<?php echo 'desc'.$i;?>" value="<?php echo $desc_mat;?>" readonly="" /> <input type="text" size="15" name="<?php echo 'aula'.$i;?>" value="<?php echo $aula_mat;?>" readonly="" /> <input type="checkbox" name="<?php echo 'box'.$i;?>" value="" /> </div> <?php } ?> <p align="right"> <input type="submit" name="executa" id="executa" value=" Executar " /> </p> <input type="hidden" name="ncurso" value="<?php echo $n;?>"> </form> </td> <?php } ?> <td> </td></tr> </table></td> </tr> <tr><td> </td></tr> </table> </div> </body> </html>
|
O programa "admin_materias.php" rege a manutenção da tabela "materias", avalia a operação de opção do usuário e ativa o programa requerido.
Formulário: Inclusão de matérias
O formulário "Inclusão de matérias" apresenta cinco linhas para entrada de dados. O usuário preenche as caixas de texto e envia o formulário, clicando no botão Incluir. O nome do programa chamado aparece descrito na cláusula action da tag form.
Programa: inc_materias.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Inclui marérias</title> <link rel="stylesheet" href="alunos.css" type="text/css" /> </head> <body bgcolor="#EEEEFF"> <div id=area_geral> <table width="750" border="0" bgcolor="#000033" cellspacing="0" cellpadding="0"> <tr><td> </td></tr> </table> <table width="750" border="0" bgcolor="#6699FF"> <tr><td><input type="button" value=" Voltar " onclick="window.location='index.html'"></td></tr> <tr> <td> <table width="500" border="0" bgcolor="#DADDFE" align="center" cellspacing="0" cellpadding="3" rules="cols"> <tr> <td colspan="5" align="center" class="f1">Inclusão de matérias</td> </tr> <tr> <td colspan="5"> </td></tr> <tr align="center"> <td width="30"> </td> <td width="30"><strong>Código</strong></td> <td width="80"><strong>descrição</strong></td> <td width="90"><strong>Hora-aula</strong></td> <td width="30"></td> </tr> <tr><td> </td> <td colspan="3"> <?php include("conecta.inc"); for($i=0; $i<=4; $i++){ if(isset($_POST['codmat'.$i])){ $codmat=$_POST['codmat'.$i]; if(is_numeric($codmat)){ $descmat=$_POST['descmat'.$i]; $aulamat=$_POST['aulamat'.$i]; $sql2="INSERT INTO materias(cod_mat, desc_mat, aula_mat)" . "VALUES ('$codmat','$descmat','$aulamat')"; mysql_query($sql2); echo "<p align='center'>Matéria $codmat $descmat (incluída)</p>"; } } } mysql_close($conexao); ?> </td> <td> </td></tr> </table></td> </tr> <tr><td> </td></tr> </table> </div> </body> </html>
|
A Inserção de novos registros ocorre quando o código da matéria for uma literal numérica.
Formulário: Exclusão de matérias
O formulário "Exclusão de matérias" mostra uma relação das matérias existentes na tabela e ao lado de cada matéria uma caixa de seleção que possibilita marcar o registro a ser eliminado. O botão Executar aciona o programa, a seguir, cujo nome se acha determinado na cláusula action da tag form.
Programa: exc_materias.php
<!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"> <head> <title>Exclui matérias</title> <link rel="stylesheet" href="alunos.css" type="text/css" /> </head> <body> <div id=area_geral> <table width="750" border="0" bgcolor="#000033" cellspacing="0" cellpadding="0"> <tr><td> </td></tr> <tr> <td><font size="4" color="#FFFFFF"><strong> Controle de Alunos </strong></font></td> </tr> <tr><td> </td></tr> </table> <table width="750" border="0" bgcolor="#6699FF"> <tr><td><input type="button" value=" Voltar " onclick="window.location='index.html'"></td></tr> <tr> <td> <table width="70%" border="0" bgcolor="#DADDFE" align="center" cellspacing="0" cellpadding="0"> <tr><td width="15%"> </td> <td width="70%"> </td> <td width="15%"> </td></tr> <tr><td colspan="3" align="center"> <h3>Exclusão de matérias</h3></td></tr> <tr><td> </td><td> <?php $n=$_POST['ncurso']; include("conecta.inc"); for($i=0;$i<$n;$i++){ $cod=$_POST['cod'.$i]; $desc=$_POST['desc'.$i]; if(isset($_POST['box'.$i])){ $checar=consulta_aluno_dis($cod); if(!$checar){ $sql="DELETE FROM materias WHERE cod_mat=$cod"; mysql_query($sql); echo "<p align='center'>Matéria $cod $desc (excluída)</p>"; }else echo "<p align='center'>Matéria $cod $desc não excluída.<br> (Há aluno(s) matriculado(s) nesta matéria)</p>"; } } mysql_close($conexao); ?> <div> </div> </td><td> </td></tr> </table></td> <tr><td colspan="3"> </td></tr> </table> </div> <?php function consulta_aluno_dis($mat){ $sql_dis="SELECT * FROM disciplinas WHERE cod_dis=$mat"; $res_dis=mysql_query($sql_dis); if(mysql_num_rows($res_dis)==0) return false; else return true; } ?> </body> </html>
|
A exclusão só terá efeito se não houver nenhum aluno matriculado nesta matéria ou disciplina, o que é verificado na function consulta _aluno_dis deste programa.
|