Arquitetura do exemplo Index.html TelaCadastro.html TelaConsulta.html TelaExclui.html...
Transcript of Arquitetura do exemplo Index.html TelaCadastro.html TelaConsulta.html TelaExclui.html...
Arquitetura do exemplo
Index.html
TelaCadastro.html
TelaConsulta.html
TelaExclui.html
TelaAltera.html
listar.php
cadastro.php
consulta.php
exclui.php
altera.php alteradados.php
bdcliente
O exemplo apresentado nessa aula é composto pelos seguintes arquivos:
Criação do banco de dados e das tabelas
Para criar o banco de dados selecione a opção phpMyAdmin.
Criação do banco de dados e das tabelas
Na tela do phpMyAdmin, digite bdcliente no campo Criar novo Banco de Dados e clique no botão Criar.
Na nova tela que aparece, digite tabcliente no campo Nome e 3 no campo Número de arquivos e clique no botão EXECUTAR. Nesses campos você está definindo o nome da tabela e o número de campos. Como criaremos os campos para cadastrar Código, Nome e Renda, o número é 3.
Criação do banco de dados e das tabelas
Na nova tela que aparece, preencha os campos como mostra a figura abaixo. Observe que serão criados os campos Cod_Cli do tipo int (Inteiro), Nom_Cli do tipo varchar (String) e Ren_Cli do tipo double(real).
Clique no botão Salvar.
Criação do banco de dados e das tabelas
Aparecerá a seguinte tela:
Pronto. Pode fechar o phpMyAdmin.
Digitação do Menu do sistema
Criaremos um menu simples, tendo como finalidade evidenciar as operações no banco de dados.
<!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> Menu Principal </title> </head> <body><ul> <li><a href="TelaCadastro.html" target="_top"> Cadastrar </a></li> <li><a href="TelaConsulta.html" target="_top"> Consultar </a> </li> <li><a href="TelaAltera.html" target="_top"> Alterar </a> </li> <li><a href="listar.php" target="_top"> Listar </a> </li> <li><a href="TelaExclui.html" target="_top"> Excluir </a></li> </ul> </body> </html>
Digitação do formulário de cadastro
O formulário de cadastro (TelaCadastro.html) será criado em uma tabela, como mostra a figura abaixo:
Digitação do formulário de cadastro
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> Formulário de Cadastro</title> </head> <body> <form action="cadastro.php" method="POST"> <table border="1"> <tr> <td> Código: </td><td> <input type="text" name="txtCodigo" size="20" /> </td> </tr>
Digitação do formulário de cadastro
<tr> <td> Nome: </td> <td> <input type="text" name="txtNome" size="50" /> </td> </tr> <tr> <td> Renda: </td> <td> <input type="text" name="txtRenda" size="15" /> </td></tr>
Digitação do formulário de cadastro
<tr> <td colspan="2"> <input type="submit" value="Salvar" /> </td> </tr> </table> </form> </body></html>
Digitação do arquivo cadastro.php
O arquivo cadastro.php receberá os dados enviados do formulário TelaCadastro.html e armazenará na tabela tabcliente do banco de dados bdcliente.
<!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" xml:lang="pt-br" lang="pt-br"> <head> <title> Cadastro </title> </head> <body>
<?php $cod = $_POST["txtCodigo"]; $nom = $_POST["txtNome"]; $ren = $_POST["txtRenda"]; $con = mysql_connect("localhost","root",“fmu"); if (!$con) { echo('Impossível conectar: ' . mysql_error());
Digitação do arquivo cadastro.php
} else { mysql_select_db("BdCliente", $con); $sql = "INSERT INTO tabcliente (Cod_Cli, Nom_Cli, Ren_Cli)
VALUES ('$cod', '$nom', '$ren')"; if (mysql_query($sql,$con)) { echo mysql_affected_rows() . " registro adicionado com sucesso"; } else { echo('Erro no cadastro: ' . mysql_error()); } mysql_close($con); }?><br /><br /><a href="index.html"> Voltar ao menu </a>
</body></html>
Explicação do arquivo cadastro.php
As linhas seguintes recebem os valores digitados nos campos txtCódigo, txtNome e txtRenda do formulário TelaCadastro.html e armazena nas variáveis $cod, $nom e $ren.
$cod = $_POST["txtCodigo"]; $nom = $_POST["txtNome"]; $ren = $_POST["txtRenda"];
A linha seguinte faz a conexão com o banco de dados e armazena a conexão na variável $con. Observe que root é o nome do usuário e fmu é a senha. Se você não modificou a instalação a senha é vazia “”. Substitua então “fmu” por “”.
$con = mysql_connect("localhost","root",“fmu");
Explicação do arquivo cadastro.php
As linhas mostradas nos próximos slides verificam se a conexão falhou, ou seja, se o conteúdo da variável $con é falso. Se a conexão falhou, a mensagem Impossível conectar é mostrada juntamente com os dados do erro. Se a conexão deu certo, o banco de dados BdCliente é aberto e uma instrução INSERT da linguagem SQL é armazenada na variável $sql. Essa instrução é encarregada de inserir os dados contidos nas variáveis $cod, $nom e $ren nos campos Cod_Cli, Nom_Cli e Ren_Cli da tabela tabcliente do banco de dados bdcliente. A instrução mysql_query($sql,$con) executa a instrução INSERT contida na variável $sql e se tudo correr bem será mostrado o número de registros da tabela que foram inseridos (mysql_affected_rows() ) e a mensagem "registro adicionado com sucesso“. Se der erro é mostrada a mensagem 'Erro no cadastro: ‘ e os detalhes do erro (mysql_error()). Por fim, a conexão com o banco de dados é encerrada. mysql_close($con).
Explicação do arquivo cadastro.php
if (!$con) { echo('Impossível conectar: ' . mysql_error());
} else { mysql_select_db("BdCliente", $con); $sql = "INSERT INTO tabcliente (Cod_Cli, Nom_Cli, Ren_Cli)
VALUES ('$cod', '$nom', '$ren')"; if (mysql_query($sql,$con)) { echo mysql_affected_rows() . " registro adicionado com sucesso"; } else { echo('Erro no cadastro: ' . mysql_error()); } mysql_close($con); }
Digitação do formulário de consulta
O formulário de consulta (TelaConsulta.html) será criado em uma tabela, como mostra a figura abaixo:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> Formulário de Consulta</title> </head> <body> <form action="consulta.php" method="GET"> <table border="1"> <tr> <td> Código: </td> <td> <input type="text" name="txtCodigo" size="20" /> </td> </tr> <tr> <td colspan="2"> <input type="submit" value="Consultar" /> </td> </tr> </table> </form> </body></html>
Digitação do arquivo consulta.php
O arquivo consulta.php recebe o código digitado no formulário TelaConsulta.html e faz uma busca na tabela tabcliente do banco de dados bdcliente.
<!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> Consulta </title> </head> <body>
<?php $cod = $_GET["txtCodigo"]; $con = mysql_connect("localhost","root",“fmu"); if (!$con) { echo('Impossível conectar: ' . mysql_error());
Digitação do arquivo consulta.php
} else { mysql_select_db("BdCliente", $con);
$resultado = mysql_query("SELECT * FROM tabcliente where Cod_Cli = $cod"); $registros = mysql_num_rows($resultado); if($registros==0){ echo "Registro não cadastrado"; } else { echo "<table border='1' width='30%'> <tr> <td> Codigo </td> <td> Nome </td> <td> Renda </td> </tr>";
while($linha = mysql_fetch_array($resultado)) { echo "<tr>"; echo "<td>" . $linha['Cod_Cli'] . "</td>"; echo "<td>" . $linha['Nom_Cli'] . "</td>"; echo "<td>" . $linha['Ren_Cli'] . "</td>"; echo "</tr>"; }
echo "</table>"; }
Digitação do arquivo consulta.php
mysql_close($con); }
?><br /><br /><a href="index.html"> Voltar ao menu </a>
</body></html>
Tela resultante:
Puff
Explicação do arquivo consulta.php
O arquivo consulta.php recebe o código digitado no campo txtCodigo do formulário TelaConsulta.html e armazena na variável $cod.Em seguida, uma conexão com o banco de dados é estabelecida e armazenada na variável $con. Se a conexão falhar, a mensagem "Impossível conectar" é mostrada juntamente com os dados do erro. Se a conexão der certo, o banco de dados BdCliente é aberto para atender a conexão contida na variável $con. Em seguida, uma instrução SELECT da linguagem SQL é executada para localizar o registro cujo conteúdo do campo Cod_Cli é igual ao conteúdo da variável $cod. O retorno dessa consulta é armazenado na array $resultado.Em seguida, a variável $registros armazena o número de registros (clientes) retornados na consulta. Se esse número for zero a mensagem "Registro não cadastrado" é exibida. Se esse número for maior que zero, o que significa que a consulta retornou pelo menos um cliente, uma tabela é gerada e os dados do(s) cliente(s) é (são) exibido(s) por meio de um laço de repetição.Por fim, a conexão com o banco de dados é fechada.
Digitação do arquivo listar.php
O arquivo listar.php é chamado ao clicar no link Listar do menu principal. Esse arquivo seleciona todos os registros cadastrados na tabela tabcliente do banco de dados bdcliente e exibe em uma tabela. É basicamente uma cópia do arquivo consulta.php, mudando apenas a instrução SELECT e as mensagens de erro. Por ser semelhante ao arquivo consulta.php que já foi explicado, esse arquivo não será comentado.
<!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> Listagem </title> </head> <body>
<?php $con = mysql_connect("localhost","root",“fmu"); if (!$con) { echo('Impossível conectar: ' . mysql_error());
Digitação do arquivo listar.php
} else { mysql_select_db("BdCliente", $con); $resultado = mysql_query("SELECT * FROM tabcliente");
$registros = mysql_num_rows($resultado); if($registros==0){ echo "Não há registros cadastrados"; } else { echo "<table border='1' width='30%'> <tr> <td> Codigo </td> <td> Nome </td> <td> Renda </td> </tr>";
while($linha = mysql_fetch_array($resultado)) { echo "<tr>"; echo "<td>" . $linha['Cod_Cli'] . "</td>"; echo "<td>" . $linha['Nom_Cli'] . "</td>"; echo "<td>" . $linha['Ren_Cli'] . "</td>"; echo "</tr>"; }
Digitação do arquivo listar.php
echo "</table>"; }
mysql_close($con); }
?><br /><br /><a href="index.html"> Voltar ao menu </a>
</body></html>
Digitação do arquivo TelaExclui.html
Esse arquivo origina um formulário para a digitação do código do cliente a ser excluído.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> Formulário de Consulta para Exclusão</title> </head> <body> <form action="exclui.php" method="GET"> <table> <tr> <td> Código: </td> <td> <input type="text" name="txtCodigo" size="20" /> </td> </tr> <tr> <td colspan="2"> <input type="submit" value="Excluir" /> </td></tr> </table> </form> </body></html>
Digitação do arquivo exclui.php
Esse arquivo exclui o registro cujo código foi digitado no formulário TelaExclui.html do banco de dados bdcliente.
<!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> Exclusão </title> </head> <body>
<?php $cod = $_GET["txtCodigo"]; $con = mysql_connect("localhost","root",“fmu"); if (!$con) { echo('Impossível conectar: ' . mysql_error()); } else { mysql_select_db("BdCliente", $con);
Digitação do arquivo exclui.php
$retorno=mysql_query("DELETE FROM tabcliente where Cod_Cli=$cod"); if ($retorno==true) {
echo mysql_affected_rows() . " registro(s) excluído(s)"; } else { echo("Não foi possível excluir o registro"); } mysql_close($con); }?><br /><br /><a href="index.html"> Voltar ao menu </a>
</body></html>
Digitação do arquivo TelaAltera.html
Esse arquivo gera um formulário para a digitação do código do cliente a ser alterado.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> Formulário de Consulta para Alteração</title> </head> <body> <form action="altera.php" method="GET"> <table> <tr> <td> Código:</td> <td> <input type="text" name="txtCodigo" size="20" /> </td> </tr> <tr> <td colspan="2"> <input type="submit" value="Alterar" /> </td> </tr> </table> </form> </body></html>
Digitação do arquivo altera.php
Esse arquivo busca os dados do cliente cujo código foi digitado no arquivo TelaAltera.html e exibe em um formulário para a alteração apenas dos campos Nom_Cli e Ren_Cli. O campo Cod_Cli não é alterado em operações de modificação de dados.
Puff
Digitação do arquivo altera.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> Alteração </title> </head> <body>
<?php $cod = $_GET["txtCodigo"]; $con = mysql_connect("localhost","root",“fmu"); if (!$con) { echo('Impossível conectar: ' . mysql_error()); } else { mysql_select_db("BdCliente", $con);
$resultado = mysql_query("SELECT * FROM tabcliente where Cod_Cli = $cod"); $linha = mysql_fetch_array($resultado);
Digitação do arquivo altera.php
echo " <form method='POST' action='alteradados.php'> <table> <tr> <td> Código: </td> <td> <input type='text' name='txtCodigo' readonly='readonly' value='$linha[Cod_Cli]' size='20' /> </td> </tr> <tr> <td>Nome:</td> <td> <input type='text' name='txtNome' value='$linha[Nom_Cli]' size='50' /> </td> </tr> <tr> <td> Renda: </td> <td> <input type='text' name='txtRenda' value='$linha[Ren_Cli]' size='15' /> </td> </tr> <tr> <td colspan='2'> <input type='submit' value='Salvar' /> </td> </tr> </table> </form> ";
Digitação do arquivo altera.php
mysql_close($con); }
?><br /><br /><a href="index.html"> Voltar ao menu </a>
</body></html>
Digitação do arquivo alteradados.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" xml:lang="pt-br" lang="pt-br"> <head> <title> Alteração </title> </head> <body>
<?php $cod = $_POST["txtCodigo"]; $nom = $_POST["txtNome"]; $ren = $_POST["txtRenda"]; $con = mysql_connect("localhost","root",“fmu"); if (!$con) { echo('Impossível conectar: ' . mysql_error()); } else { mysql_select_db("BdCliente", $con); $sql = "UPDATE tabcliente SET Nom_Cli = '$nom', Ren_Cli='$ren'
where Cod_Cli='$cod'";
Digitação do arquivo alteradados.php
if (!mysql_query($sql,$con)) { echo('Erro na alteração: ' . mysql_error()); } else { echo mysql_affected_rows() . " registro(s) alterado(s)"; } mysql_close($con); }?><br /><br /><a href="index.html"> Voltar ao menu </a>
</body></html>
Informações gerais
Lembre-se de mudar as linhas de conexão com o banco de dados de $con = mysql_connect("localhost","root",“fmu"); para $con = mysql_connect("localhost","root",""); já que por padrão o MySQL vem sem senha.