Professional Documents
Culture Documents
Dando prosseguimento à aula anterior, agora precisaremos construir uma rotina que faça a inserção
no banco de dados “Escola”. A ação agora é inserir o aluno na tabela alunos quando o usuário clicar
no botão “Cadastrar”. Este botão, se observarmos o código do formulário, é o seguinte:
Observe que seu nome de variável é o que está associado ao atributo “name” que, neste exemplo, é
“enviar”. Como o formulário é do tipo “post”, obtemos da seguinte maneira se o usuário clicou ou
não no botão “Cadastrar”:
O comando “isset” significa está “setado”? Ou melhor, ele existe? A segunda parcela do
condicional ($_POST['enviar']) refere-se ao fato de que quando o usuário clica no botão de envio,
automaticamente o valor do botão, neste caso “Cadastrar”, é atribuído à variável “enviar”
($_POST[‘enviar’]), fazendo com que $_POST[‘enviar’] seja “true”. A terceira parcela do
condicional ($_POST['aluno']!="") serve para garantir que se o usuário não digitar um nome de
aluno, o programa não cadastre um valor vazio no banco de dados.
Veja que utilizamos a sintaxe padrão SQL para inserir os dados. O valor ‘null’ do primeiro campo
deve-se ao fato de o campo id da tabela alunos ser do tipo auto_increment, não necessitando,
portanto, passar um valor específico como 1, 2,3, etc. Coloque este código antes do formulário
HTML (tag <form>) para que sempre que inserirmos um dado, a tabela de exibição dos alunos seja
atualizada sem que precisemos dar um refresh (F5) na página.
Abaixo do formulário, deve-se colocar a rotina para exibir os dados cadastrados, conforme abaixo:
Aqui, preparamos a tabela para ser exibida. Observe que esta primeira parte não precisa estar dentro
do código PHP visto que é HTML puro. Agora, resta-nos embutir o código PHP dentro da tabela
HTML para que possamos exibir os dados de maneira adequada:
<?
$sql = "SELECT alunos.nome as aluno, professores.nome as professor FROM alunos
inner join professores on alunos.idProf = professores.id";
$query = mysql_query($sql);
while ($linha=mysql_fetch_array($query)) {
echo
"<tr><td>$linha[aluno]</td><td>$linha[professor]</td><td>Excluir</td><td>Alterar
</td></tr>";
}
?>
Veja que qualquer consulta ao banco, seja inserção, alteração, exclusão ou listagem, passa pelo
mesmo processo. A única das quatro operações que difere quanto ao código PHP é a listagem que
faz-se necessário um laço – estrutura while – para que possamos exibir todos os registros da tabela
alunos. Agora, juntando tudo, temos:
<?
$servidor = mysql_connect("localhost", "root", "");
$banco = mysql_select_db("web09", $servidor);
$sql = "select * from professores";
$consulta = mysql_query($sql);
Excluindo Registros
Uma técnica simples de exclusão de registros é aproveitarmos a listagem da alunos acima e embutir
um código PHP para que sempre que o usuário clique no link “excluir”, seja feita uma exclusão.
Isto é feito da seguinte forma: a primeira coisa é colocarmos um link na palavra excluir passando
dois valores como variáveis de URL (do tipo get). A primeira variável seria o ID do aluno
cadastrado. Utilizamos o ID por ser um campo único, ou seja, ao construirmos o banco, garantimos
que o campo ID não poderá ter valores repetidos. A segunda variável seria uma que indicasse que a
ação do usuário é a de exclusão de registro. Poderíamos, então, colocar o seguinte código na
listagem acima onde tem a palavra “Excluir” dentro do laço while:
<a href=”?id=$linha[id]&action=excluir”>Excluir</a>
echo "<tr><td>$linha[aluno]</td><td>$linha[professor]</td><td><a
href='?id=".$linha['id']."&action=excluir'>Excluir</a></td><td>Alterar</td></tr>
";
Teste o código e observe que, ao passarmos o mouse sobre o link excluir, na barra de status
aparecerá o id do aluno e uma variável “action” cujo valor é “excluir”. Essa variável action (que
poderia ser qualquer outro nome, desde que respeite as regras de nomenclatura de variáveis) e a
variável id são do tipo get, pois estão sendo passadas através de um link.
Agora, precisamos fazer a ação de excluir. Uma vez que já temos o id e o que fazer com ele (action
= excluir), basta criar o trecho de código para deletar o registro. Agora, insira o seguinte código
logo acima do formulário HTML:
Alterando Registros
Para alterarmos um registro, basta que passemos seu id para uma página contendo um novo
formulário muito parecido com o de inserção feito anteriormente nesta aula. No Dreamweaver, crie
um novo arquivo em PHP e salve-o como alterar.php.
No código da listagem anterior, será necessário modificá-lo para acrescentar o link para a página de
alteração, passando o id do respectivo registro a ser alterado. Isto é feito da seguinte forma:
echo "<tr><td>$linha[aluno]</td><td>$linha[professor]</td><td><a
href='?id=".$linha['id']."&action=excluir'>Excluir</a></td><td><a
href='altera.php?id=".$linha['id']."'>Alterar</td></tr>";
Substitua a linha equivalente por esta acima. Veja que acrescentamos um link para a página
altera.php passando o id do registro pela URL. Vejamos agora o que será feito na página de
alteração. É muito parecido com o que fizemos na página anterior.
<?
$servidor = mysql_connect("localhost", "root", "");
$banco = mysql_select_db("web09", $servidor);
Teste o programa acima e observe o que acontece. Lembre-se de testá-lo a partir da página anterior
onde havia a listagem. É de lá que será escolhido o aluno a ser alterado.
Com este exercício, contemplamos todas as quatro operações básicas de manipulação com banco de
dados em PHP. Ele implementa inserção de registros, listagem, alteração e exclusão. Com isto, já
temos base para fazer o portal de notícias para a prática profissional.