Apostila de PHP - PARTE 8


mail($destinatario, $assunto, $mensagem, $cabecalho); echo "e-mail enviado com sucesso";
?>

</body>
</html>

Figura 48 – Código com envio de e-mail

PHP e MySQL
Introdução ao MySQL

O MySQL é o gerenciador de banco de dados mais usado com o PHP. Existem muitas funções pré-definidas para manipulação de conexões com bancos de dados.
A função mysql_connect tenta uma conexão com um servidor MySQL. Deve-se passar como parâmetros: o nome do servidor (ou número IP) onde o MySQL está  sendo  executado, o nome de usuário e a senha deste usuário. O comando alternativo die trata um possível fracasso na conexão.
A função mysql_selectdb seleciona qual base será selecionada dentro  do  banco  de dados que foi conectado. O comando alternativo die trata um possível fracasso  na seleção  da base, podendo ser incluída uma mensagem customizada.
A função mysql_query faz consultas à base previamente selecionada. Deve-se passar, como parâmetros, os comandos SQL apropriados. Novamente, o comando alternativo die pode tratar um não sucesso na consulta.
<html>
<head>
<title>Página PHP</title>
</head>
<body>

<?php
$link = mysql_connect("127.0.0.1", "root", "") or die("Não foi possível conectar");

mysql_select_db("teste")
or die("Não foi possível selecionar o banco de dados");

$consulta = "SELECT * FROM Clientes";
$resultado = mysql_query($consulta)
or die("Falha na execução da consulta");

echo "Consulta executada com sucesso";
?>

</body>
</html>

Figura 49 – Código com conexão a um banco de dados MySQL, seleção de uma base teste e consulta todos os registros da tabela Clientes


Exibição

Para que os registros da consulta sejam exibidos, deve-se usar a função mysql_fetch_assoc, que retorna uma matriz com a linha atual e move para a próxima. Para  se imprimir todos os resultados de uma query, é necessária a  construção  de uma estrutura  de repetição (while) até que a função mysql_fetch_assoc não retorne nenhum valor (vazio). Para melhorar a apresentação dos resultados, é possível usar tags HTML que incluam os dados dentro de tabelas, por exemplo.
<html>
<head>
<title>Página PHP</title>
</head>
<body>

<?php
$link = mysql_connect("127.0.0.1", "root", "") or die("Não foi possível conectar");

mysql_select_db("teste")
or die("Não foi possível selecionar o banco de dados");

$consulta = "SELECT * FROM Clientes";
$resultado = mysql_query($consulta)
or die("Falha na execução da consulta");

$linha = mysql_fetch_assoc($resultado);

$NomeDaEmpresa  = $linha["NomeDaEmpresa"];
$NomeDoContato  = $linha["NomeDoContato"];

echo "<b>Nome da empresa:</b> $NomeDaEmpresa<br>"; echo "<b>Nome do contato:</b> $NomeDoContato";

?>

</body>
</html>

Figura 50 – Código com impressão de um registro a partir de uma consulta

<html>
<head>
<title>Página PHP</title>
</head>
<body>

<?php
$link = mysql_connect("127.0.0.1", "root", "") or die("Não foi possível conectar");

mysql_select_db("teste")
or die("Não foi possível selecionar o banco de dados");




 $consulta = "SELECT * FROM Clientes";
$resultado = mysql_query($consulta)
or die("Falha na execução da consulta");

while ($linha = mysql_fetch_assoc($resultado))
{

$NomeDaEmpresa  = $linha["NomeDaEmpresa"];
$NomeDoContato  = $linha["NomeDoContato"];

echo "<b>Nome da empresa:</b> $NomeDaEmpresa<br>"; echo "<b>Nome do contato:</b> $NomeDoContato<p>";
}

?>

</body>
</html>

Figura 51 – Código com impressão de todos registros a partir de uma consulta

Consulta e Ordenação

Pode-se fazer consultas atendendo a certos critérios, que vão fazer com que a consulta seja refinada. No próximo exemplo, desejamos selecionar apenas os clientes de São Paulo. Nesse caso, a cláusula que deve ser alterada é a que faz a consulta SQL.
<html>
<head>
<title>Página PHP</title>
</head>
<body>

<?php

$link = mysql_connect("127.0.0.1", "root", "") or die("Não foi possível conectar");

mysql_select_db("teste")
or die("Não foi possível selecionar o banco de dados");

$consulta = "SELECT NomeDaEmpresa, NomeDoContato
FROM Clientes
WHERE Cidade = 'São Paulo'";

$resultado = mysql_query($consulta)
or die("Falha na execução da consulta");

while ($linha = mysql_fetch_assoc($resultado))
{

$NomeDaEmpresa  = $linha["NomeDaEmpresa"];
$NomeDoContato  = $linha["NomeDoContato"];

echo "<b>Nome da empresa:</b> $NomeDaEmpresa<br>";




 echo "<b>Nome do contato:</b> $NomeDoContato<p>";
}

?>

</body>
</html>

Figura 52 – Código com impressão de determinados registros que satisfazem uma condição (select ... from ... where ...)
No caso de ordenação, a cláusula order by deve ser anexada à query SQL.
<html>
<head>
<title>Página PHP</title>
</head>
<body>

<?php
$link = mysql_connect("127.0.0.1", "root", "") or die("Não foi possível conectar");

mysql_select_db("teste")
or die("Não foi possível selecionar o banco de dados");

$consulta = "SELECT NomeDaEmpresa, NomeDoContato
FROM Clientes
WHERE Cidade = 'São Paulo' ORDER BY NomeDoContato";

$resultado = mysql_query($consulta)
or die("Falha na execução da consulta");

while ($linha = mysql_fetch_assoc($resultado))
{

$NomeDaEmpresa  = $linha["NomeDaEmpresa"];
$NomeDoContato  = $linha["NomeDoContato"];

echo "<b>Nome da empresa:</b> $NomeDaEmpresa<br>"; echo "<b>Nome do contato:</b> $NomeDoContato<p>";
}

?>

</body>
</html>

Figura 53 – Código com impressão de determinados registros que satisfazem uma condição, ordenados por um dos atributos (select ... from ... where ... order by ...)

Inclusão e Atualização

Para se incluir dados em uma tabela MySQL, deve-se usar o comando INSERT. No exemplo a seguir, a inclusão de dados é estática. Para se criar um aplicativo que permita



inclusão, seria necessário adaptar o script para receber dados via formulário e incluí-los no banco de dados.
<html>
<head>
<title>Página PHP</title>
</head>
<body>

<?php
$link = mysql_connect("127.0.0.1", "root", "") or die("Não foi possível conectar");

mysql_select_db("teste")
or die("Não foi possível selecionar o banco de dados");

$CodigoDoCliente = "EELTD";
$NomeDaEmpresa = "Editora Europa";
$NomeDoContato = "Rodolfo Melo";
$Cidade = "São Paulo";

$consulta = "INSERT INTO Clientes
(CódigoDoCliente, NomeDaEmpresa, NomeDoContato, Cidade) VALUES
('$CodigoDoCliente', '$NomeDaEmpresa', '$NomeDoContato',
'$Cidade')";
$resultado = mysql_query($consulta)
or die("Falha na execução da consulta"); echo "Dados adicionados com sucesso";
?>

</body>
</html>

Figura 54 – Código com inclusão de um registro em uma tabela do banco de dados
O comando UPDATE altera um registro de uma tabela. No exemplo a seguir, o registro cujo código é “EELTD” passa a ter o nome “Robinson Melgar”.
<html>
<head>
<title>Página PHP</title>
</head>
<body>

<?php
$link = mysql_connect("127.0.0.1", "root", "") or die("Não foi possível conectar");

mysql_select_db("teste")
or die("Não foi possível selecionar o banco de dados");

$CodigoDoCliente = "EELTD";
$NomeDoContato = "Robinson Melgar";





$consulta = "UPDATE Clientes
SET NomeDoContato = '$NomeDoContato'
WHERE CódigoDoCliente = '$CodigoDoCliente'";

$resultado = mysql_query($consulta)
or die("Falha na execução da consulta"); echo "Dados alterados com sucesso";
?>

</body>
</html>



Exclusão
Figura 55 – Código com alteração de dados via comando update


O comando SQL DELETE remove um registro de uma tabela. A cláusula WHERE delimita a condição para que a remoção seja executada.
<html>
<head>
<title>Página PHP</title>
</head>
<body>

<?php
$link = mysql_connect("127.0.0.1", "root", "") or die("Não foi possível conectar");

mysql_select_db("teste")
or die("Não foi possível selecionar o banco de dados");

$CodigoDoCliente = "EELTD";

$consulta = "DELETE FROM Clientes
WHERE CódigoDoCliente = '$CodigoDoCliente'";

$resultado = mysql_query($consulta)
or die("Falha na execução da consulta"); echo "Registro excluído com sucesso";
?>

</body>
</html>

Figura 56 – Código com remoção de registros


Referências

BAKKEN, S. S. et al. PHP Manual. Disponível em: <http://br.php.net/get/php_ manual_pt_BR.chm/from/this/mirror>. Acesso em: 21 out. 2003.

EDITORA Europa. Curso de PHP. www.com.br, São Paulo, n. 40, set. 2003. CD-ROM.

Comentários