PHP e MySQL

 
 
Parte VII - PHP 5.3 com Banco de dados MySQL 5.1
Seção Cursos
 

Menu de administração

Menu geral de administração do projeto exemplo "Controle de alunos".

Formulário: Menu de administração

Este formulário, bemo como, o programa "index.html" considerados ponto de partida das diversas funções do projeto exemplo já foram discutidos em páginas anteriores que tratam dos programas vinculados aos submenus "Alunos" e "Aluno-disciplinas".

 

Submenu Cursos

O submenu "Cursos" exibe duas caixas de opções que definem a operação do botão Enter e, logo abaixo, mostra o botão Listar.

Botão Listar - este botão executa o programa "lista_cursos.php" que emite o relatório dos cursos cadastrados, conforme exemplo:

Relatório: Listagem de cursos

Programa: lista_cursos.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 cursos</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>&nbsp;</td></tr>
<tr>
<td><font size="4" color="#FFFFFF"><strong>&nbsp;&nbsp;
Controle de Alunos </strong></font></td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
<table width="750" border="0" bgcolor="#6699FF">
<tr><td><input type="button" value=" &nbsp;Voltar&nbsp; "
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 cursos</td>
</tr>
<tr>
<td colspan="5">&nbsp;</td></tr>
<td width="40">&nbsp;</td>
<td width="20"><strong>Código</strong></td>
<td width="80"><strong>descrição</strong></td>
<td width="80"><strong>Área</strong></td>
<td width="40"></td>
</tr>
<?php
include("conecta.inc");
$sql="SELECT * FROM cursos ORDER BY cod_cur";
$res=mysql_query($sql);
while($registro=mysql_fetch_row($res)) {
echo "<tr>";
echo "<td>&nbsp;</td>";
echo "<td align='right'>$registro[0]&nbsp;</td>";
echo "<td>&nbsp;$registro[1]</td>";
echo "<td>&nbsp;$registro[2]</td>";
echo "<td>&nbsp;</td>";
echo "</tr>";
}
mysql_close($conexao);
?>
<td>&nbsp;</td>
</table></td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
</div>
</body>
</html>

Ao ser pressionado, o botão Listar ativa o programa "lista_cursos.php" que relaciona todos os registros contidos na tabela cursos, efetuando a conexão com o banco de dados e a leitura da tabela por meio das instruções transcritas a seguir:

include("conecta.inc");
$sql="SELECT * FROM cursos ORDER BY cod_cur";
$res=mysql_query($sql);
while($registro=mysql_fetch_row($res)) {
echo "<tr>";
echo "<td>&nbsp;</td>";
echo "<td align='right'>$registro[0]&nbsp;</td>";
echo "<td>&nbsp;$registro[1]</td>";
echo "<td>&nbsp;$registro[2]</td>";
echo "<td>&nbsp;</td>";
echo "</tr>";
}

Cada linha da tabela é atribuída à variável $registro pela instrução mysql_fetch_row($res) até esgotarem-se todas as linhas, controladas pela instrução de repetição while.

Botão Enter - o botão Enter proporciona condições de inserção e eliminação de cursos, executando o seguinte programa:

Programa: admin_cursos.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 cursos</title>
<link rel="stylesheet" href="alunos.css" type="text/css" />
</head>
<?php
$oper=$_POST['oper3'];
?>
<body bgcolor="#EEEEFF">
<div id=area_geral>
<table width="750" border="0" bgcolor="#000033"
cellspacing="0" cellpadding="0">
<tr><td>&nbsp;</td></tr>
<td><font size="4" color="#FFFFFF"><strong>&nbsp;&nbsp;
Controle de Alunos </strong></font></td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
<table width="750" border="0" bgcolor="#6699FF">
<tr><td><input type="button" value=" &nbsp;Voltar&nbsp; "
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 cursos<font></td></tr>";
}else
echo "<tr><td colspan='5' align='center'>
<font size='3'>Inclusão de cursos<font></td></tr>";
?>
<tr><td colspan="5">&nbsp;</td></tr>
<tr align="center">
<td width="30">&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;Área &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exc.</strong></td>";
}else
echo "<td width='90'><strong>Área</strong></td>";
?>
<td width="30"></td>
</tr>
<tr><td>&nbsp;</td> <td colspan="3">
<?php
if ($oper=="inc"){
echo "<form name='form1' method='post' action='inc_cursos.php'>";
for($i=0;$i<5;$i++){
?>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="text" size="3" name="<?php echo 'codcurso'.$i;?>"
value="" /> &nbsp;&nbsp;&nbsp;
<input type="text" size="25" name="<?php echo 'descurso'.$i;?>"
value="" /> &nbsp;&nbsp;&nbsp;
<input type="text" size="15" name="<?php echo 'areacurso'.$i;?>"
value="" />
</div>
<?php
}
?>
<p align="right">
<input type="submit" name="envia" id="envia" value=" Incluir " /> &nbsp;
<input type="reset" value=" Limpar "/>&nbsp;&nbsp;&nbsp;
</p>
</form>
</td>
<td>&nbsp;</td></tr>
<?php
}else{
echo "<form name='form2' method='post' action='exc_cursos.php'>";
include("conecta.inc");
$sql=("SELECT * FROM cursos ORDER BY cod_cur");
$res=mysql_query($sql);
$n=mysql_num_rows($res);
for($i=0;$i<$n;$i++){
$reg=mysql_fetch_array($res);
$cod_cur=$reg["cod_cur"];
$desc_cur=$reg["desc_cur"];
$area_cur=$reg["area_cur"];
?>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="text" size="3" name="<?php echo 'cod'.$i;?>"
value="<?php echo $cod_cur;?>" readonly="" />
&nbsp;&nbsp;&nbsp;
<input type="text" size="25" name="<?php echo 'desc'.$i;?>"
value="<?php echo $desc_cur;?>" readonly="" />
&nbsp;&nbsp;&nbsp;
<input type="text" size="15" name="<?php echo 'area'.$i;?>"
value="<?php echo $area_cur;?>" readonly="" />
&nbsp;
<input type="checkbox" name="<?php echo 'box'.$i;?>" value="" />
</div>
<?php
}
?>
<p align="right">
<input type="submit" name="executa" id="executa" value=" Executar " />
&nbsp;&nbsp;&nbsp;&nbsp;
</p>
<input type="hidden" name="ncurso" value="<?php echo $n;?>">
</form>
</td>
<?php
}
?>
<td>&nbsp;</td></tr>
</table></td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
</div>
</body>
</html>

O programa "admin_cursos.php" administra os programas relativos à manutenção da tabela "cursos". Ele avalia a operação requerida pelo usuário, exibe o formulário e ativa o programa para inclusão ou exclusão de registros da tabela, dependendo da opção selecionada pelo usuário.

Formulário: Inclusão de cursos

O formulário "Inclusão de cursos" 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_cursos.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 cursos</title>
<link rel="stylesheet" href="alunos.css" type="text/css" />
</head>
<body bgcolor="#EEEEFF">
<div id=area_geral>
<table width="750" border="0" cellspacing="0" cellpadding="0" bgcolor="#000033">
<tr><td>&nbsp;</td></tr>
<tr>
<td><font size="4" color="#FFFFFF"><strong>&nbsp;&nbsp;
Controle de Alunos </strong></font></td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
<table width="750" border="0" bgcolor="#6699FF">
<tr><td><input type="button" value=" &nbsp;Voltar&nbsp; "
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 cursos</td>
</tr>
<tr><td colspan="5">&nbsp;</td></tr>
<tr align="center">
<td width="30">&nbsp;</td>
<td width="30"><strong>Código</strong></td>
<td width="80"><strong>descrição</strong></td>
<td width="90"><strong>Área</strong></td>
<td width="30"></td></tr>
<tr><td>&nbsp;</td>
<td colspan="3">
<?php
include("conecta.inc");
for($i=0; $i<=4; $i++){
if(isset($_POST['codcurso'.$i])){
$codcurso=$_POST['codcurso'.$i];
if(is_numeric($codcurso)){
$descurso=$_POST['descurso'.$i];
$areacurso=$_POST['areacurso'.$i];
$sql2="INSERT INTO cursos(cod_cur, desc_cur, area_cur)"
. "VALUES ('$codcurso','$descurso','$areacurso')";
mysql_query($sql2);
echo "<p align='center'>Curso $codcurso $descurso (incluído)</p>";
}
}
}
mysql_close($conexao);
?>
</td>
<td>&nbsp;</td></tr>
</table></td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
</div>
</body>
</html>

Este programa insere o registro quando o código do curso estiver representado por um número, o que leva a executação dos comandos:

$sql2="INSERT INTO cursos(cod_cur, desc_cur, area_cur)"
. "VALUES ('$codcurso','$descurso','$areacurso')";
mysql_query($sql2);

Formulário: Exclusão de cursoss

O formulário "Exclusão de cursos" mostra uma relação dos cursos existentes na tabela e ao lado de cada curso 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_cursos.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 cursos</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>&nbsp;</td></tr>
<tr>
<td><font size="4" color="#FFFFFF"><strong>&nbsp;&nbsp;
Controle de Alunos </strong></font></td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
<table width="750" border="0" bgcolor="#6699FF">
<tr><td><input type="button" value=" &nbsp;Voltar&nbsp; "
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%">&nbsp;</td>
<td width="70%">&nbsp;</td>
<td width="15%">&nbsp;</td></tr>
<tr><td colspan="3" align="center">
<h3>Exclusão de cursos</h3></td></tr>
<tr><td>&nbsp;</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($cod);
if(!$checar){
$sql="DELETE FROM cursos WHERE cod_cur=$cod";
mysql_query($sql);
echo "<p align='center'>Curso $cod $desc (excluído)</p>";
}else
echo "<p align='center'>Curso $cod $desc não excluído.<br>
(Há aluno inscrito neste curso)</p>";
}
}
mysql_close($conexao);
?>
<div>&nbsp;</div>
</td><td>&nbsp;</td></tr>
</table></td>
<tr><td colspan="3">&nbsp;</td></tr>
</table>
</div>
<?php
function consulta_aluno($curso){
$sql_alu="SELECT * FROM alunos WHERE curso=$curso";
$res_alu=mysql_query($sql_alu);
if(mysql_num_rows($res_alu)==0)
return false;
else
return true;
}
?>
</body>
</html>

O curso para ser excluído não pode ter nenhum aluno matriculado neste curso, o que é verificado pela função function consulta _aluno deste programa, a fim de permitir a executação das instruções que seguem:

$sql="DELETE FROM cursos WHERE cod_cur=$cod";
mysql_query($sql);