18 - CRUD com php
-
Upload
luis-osorio -
Category
Technology
-
view
5.267 -
download
13
description
Transcript of 18 - CRUD com php
![Page 1: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/1.jpg)
CRUD com PHP18 CRUD com PHP
CRUD é o acrônimo da expressão em língua Inglesa Create, Retrieve, Update e Delete, usada para definir quatro operações básicas usadas em bancos de dados relacionais (RDBMS) ou em interface para usuários para criação, consulta, atualização e destruição de dados.pt.wikipedia.org/wiki/CRUD.
![Page 2: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/2.jpg)
CRUD com PHP18.1 Exercício com CRUD
Para este exercício vamos alterar a tabela paises para incluir dois campo adicionais, a moeda e população.
Alterar a tabela PaisesEfectuamos a ligação à nossa base de dados, através da ligação pré-estabelcida no MySql Workbench.
![Page 3: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/3.jpg)
CRUD com PHP18.2 Exercício com CRUD
Efectuamos um clique com o botão direito do rato sobre a tabela países e escolhemos “Alter Table”.
![Page 4: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/4.jpg)
CRUD com PHP18.3 Exercício com CRUD
Escolhemos “Columns” e criamos os campos como no exemplo.
Seguidamente, fazemos “Apply”, seguido de “Apply Sql” e depois “Finish” e “Close” para fechar a janela.
![Page 5: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/5.jpg)
CRUD com PHP18.4 Exercício com CRUD
Fazemos refresh e verificamos as alterações efectuadas.
![Page 6: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/6.jpg)
CRUD com PHP18.5 Exercício com CRUD
Criação do ficheiro index.phpEste ficheiro vai conter o código inicial deste exemplo. Deve criar uma pasta chamada CRUD, e criar um ficheiro chamado index.php
![Page 7: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/7.jpg)
CRUD com PHP18.6 Exercício com CRUD
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
Opções:<br/>
<form action="introduzireditar.php" method="GET" name="paises">
<input type="submit" value="Introduzir" />
</form>
<form action="listar.php" method="GET" name="paises">
<input type="submit" value="Listar" />
</form>
</body>
</html>
![Page 8: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/8.jpg)
CRUD com PHP18.7 Exercício com CRUD
No slide anterior criamos uma página HTML básica que contém dois form, cada um com um botão, um para introduzir um novo país e outro para listar os países. Na opção de listar, vamos poder editar ou eliminar os países se o desejarmos. Deve criar uma pasta dentro da pasta CRUD, chamada “includes”, e copiar para dentro desta pasta o ficheiro config.php criado no último exemplo.
![Page 9: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/9.jpg)
CRUD com PHP18.8 Exercício com CRUD
O exemplo do resultado do nosso código HTML para o ficheiro index.php é o seguinte:
![Page 10: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/10.jpg)
CRUD com PHP18.9 Exercício com CRUD
Criar o ficheiro introduzireditar.php.Este ficheiro permitirá introduzir e editar novos países. O seu código HTML inicial é o seguinte:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
Introduzir os dados do País:<br />
![Page 11: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/11.jpg)
CRUD com PHP18.10 Exercício com CRUD
<form action="introduzireditar.php" method="POST" name="introduzir">
<label for="nomepais">Nome País: </label>
<input type="text" name="nomepais" value="" />
<br />
<label for="moedapais">Moeda: </label>
<input type="text" name="moedapais" value="" />
<br />
<label for="populacaopais">População: </label>
<input type="text" name="populacaopais" value="" />
<br />
<input type="submit" value="Gravar" />
![Page 12: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/12.jpg)
CRUD com PHP18.11 Exercício com CRUD
</form>
<a href="index.php">Voltar</a>
</body>
</html>
![Page 13: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/13.jpg)
CRUD com PHP18.12 Exercício com CRUD
A nossa página ficará como o exemplo abaixo:
![Page 14: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/14.jpg)
CRUD com PHP18.13 Exercício com CRUD
Introduzir o código PHP no ficheiro introduzireditar.php.
Criar uma pasta chamada “include” e colocar dentro da pasta o ficheiro config.php.
Introduzir o seguinte código no inicio do ficheiro introduzireditar.php, antes da primeira tag HTML e dentro das tags PHP <?php … ?>.
<?php
//inclui o ficheiro com as configurações da base de dados
require_once("includes/config.php");
//efectua a conexão com os dados do ficheiro config.php
$conexao = mysql_connect($dbhost, $dbuser, $dbpassword);
![Page 15: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/15.jpg)
CRUD com PHP18.14 Exercício com CRUD
//testa se a conexão teve sucesso; se não teve dá erro e termina o script
if (!$conexao)
{
die('Erro de conexão: ' . mysql_error());
}
?>
![Page 16: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/16.jpg)
CRUD com PHP18.15 Exercício com CRUD
O código anterior efectua a ligação ao nosso servidor MySql usando as configurações do ficheiro config.php. A conexão é efectuada com a função mysql_connect(), que recebe os parâmetros para a ligação, o host onde reside a base de dados, o utilizador e password definidos.
Um ponto importante é a verificação se a ligação foi bem sucedida, com a instrucção if (!conexao). Caso não tenha tido sucesso, o script é terminado com a mensagem ‘Erro de conexão’ , seguido do respectivo erro do MySql.
![Page 17: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/17.jpg)
CRUD com PHP18.16 Exercício com CRUD
Detectar um POSTComo já deve ter reparado, o form contido no script introduzireditar.php, efectua um POST sobre si mesmo. A forma de sabermos que foi efectuado um POST e que o script deve recolher os valores de cada campo e efectuar a inserção dos dados na tabela é efectuado pela condição:
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
}
Deve colocar a condição na segunda linha do script, logo a seguir a tag inicial do PHP <?php e fechar o if imediatamente antes da tag de fecho ?>.
![Page 18: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/18.jpg)
CRUD com PHP18.17 Exercício com CRUD
Seleccionar a base de dados e o charsetDevemos antes de manipular os nossos registos, seleccionar a base de dados com o comando:
mysql_select_db($dbdatabase, $conexao);
e definir o charset com a instrucção:
mysql_set_charset('utf8',$conexao);
Estas duas linhas devem ser colocadas a seguir à instrução:
if (!$conexao)
{
die('Erro de conexão: ' . mysql_error());
}
![Page 19: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/19.jpg)
CRUD com PHP18.18 Exercício com CRUD
Recolher os dados do array $_POSTNeste passo vamos criar três variáveis auxiliares, que vão receber os dados do array $_POST, previamente “escapados” com a função mysql_real_escape_string() para prevenir sql injection. Colocar as instruções logo abaixo às do ponto anterior.
$nomepais = mysql_real_escape_string($_POST["nomepais"]);
$moedapais = mysql_real_escape_string($_POST["moedapais"]);
$populacaopais = mysql_real_escape_string($_POST["populacaopais"]);
![Page 20: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/20.jpg)
CRUD com PHP18.19 Exercício com CRUD
Criar o comando SQL para inserir os dados e testar se executou sem erros
Inserir as intrucções abaixo, logo após as instrucções do ponto anterior.
$sql = "INSERT INTO paises (nome_pais, moeda_pais, populacao_pais)" . " VALUES ('" . $nomepais . "', '" . $moedapais . "', " . $populacaopais . ")";
$insert = mysql_query($sql);
if (!$insert)
{
echo $sql;
echo 'Erro ao inserir o registo: ' . mysql_error();
}
![Page 21: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/21.jpg)
CRUD com PHP18.20 Exercício com CRUD
Testar o script
Nesta fase, já deve ser possível introduzir novos registos. Executar agora um teste.
![Page 22: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/22.jpg)
CRUD com PHP18.21 Exercício com CRUD
Criar o script listar.php
Este script mostrará uma lista dos países e as suas informações. Nesta lista será possível também efectuar a eliminação e edição de registos.
![Page 23: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/23.jpg)
CRUD com PHP18.22 Exercício com CRUD
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<table border="black">
<tr>
<th>Nome País</th>
<th>Moeda</th>
<th>População</th>
</tr>
![Page 24: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/24.jpg)
CRUD com PHP18.23 Exercício com CRUD
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
<a href="index.php">Voltar</a>
</body>
</html>
![Page 25: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/25.jpg)
CRUD com PHP18.24 Exercício com CRUD
Efectuar a ligação à base de dados
Este passo é semelhante ao do exemplo anterior. Devem introduzir as instrucções abaixo dentro das tags do PHP:
//inclui o ficheiro com as configurações da base de dados
require_once("includes/config.php");
//efectua a conexão com os dados do ficheiro config.php
$conexao = mysql_connect($dbhost, $dbuser, $dbpassword);
//testa se a conexão teve sucesso; se não teve dá erro e termina o script
if (!$conexao)
{
die('Erro de conexão: ' . mysql_error());
}
![Page 26: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/26.jpg)
CRUD com PHP18.25 Exercício com CRUD
Seleccionar a base de dados e o charset
À semelhança do ficheiro anterior, seleccionamos a base de dados e definimos o charset. Colocamos as instrucções abaixo logo a seguir às do ponto anterior:
mysql_select_db("aulasphp", $conexao);
mysql_set_charset('utf8',$conexao);
![Page 27: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/27.jpg)
CRUD com PHP18.26 Exercício com CRUD
Definir o comando SQL a executarO comando que vamos executar deve mostrar todos os registos presentes na tabela paises. Para esse efecito, um simples select é suficiente. Colocar as intrucções a seguir às do ponto anterior.
$sql = "SELECT * FROM paises";
$paises = mysql_query($sql);
![Page 28: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/28.jpg)
CRUD com PHP18.27 Exercício com CRUD
Iterar sobre os registos
Para iterarmos sobre os registos, necessitamos de um ciclo e de converter o resultado do nosso query sql num array associativo. Devem substituir o código HMTL seguinte:
<tr>
<td></td>
<td></td>
<td></td>
</tr>
![Page 29: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/29.jpg)
CRUD com PHP18.28 Exercício com CRUD
Iterar sobre os registos
Para iterarmos sobre os registos, necessitamos de um ciclo e de converter o resultado do nosso query sql num array associativo. Devem substituir o código HMTL seguinte:
<tr>
<td></td>
<td></td>
<td></td>
</tr>
![Page 30: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/30.jpg)
CRUD com PHP18.29 Exercício com CRUD
Pelo seguinte código:
<?php
while($registos = mysql_fetch_array($paises))
{
echo "<tr>\n";
echo "<td>\n";
echo $registos["nome_pais"];
echo "</td>\n";
echo "<td>\n";
echo $registos["moeda_pais"];
echo "</td>\n";
echo "<td>\n";
echo $registos["populacao_pais"];
echo "</td>\n";
![Page 31: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/31.jpg)
CRUD com PHP18.30 Exercício com CRUD
echo "<td>\n";
echo "<form name=\"editar\" action=\"editarpais.php\" method=\"GET\">";
echo "<input type=\"hidden\" name=\"idpais\" value=\"" . $registos["id_pais"] ."\"/>";
echo "<input type=\"submit\" value=\"Editar\"/>";
echo "</form>";
echo "</td>\n";
echo "<td>\n";
echo "<form name=\"eliminar\" action=\"eliminarpais.php\" method=\"GET\">";
echo "<input type=\"hidden\" name=\"idpais\" value=\"" . $registos["id_pais"] ."\"/>";
echo "<input type=\"submit\" value=\"Eliminar\"/>";
echo "</form>";
echo "</td>\n";
echo "</tr>\n";
}
?>
![Page 32: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/32.jpg)
CRUD com PHP18.31 Exercício com CRUDColocamos um novo header para a tabela com o texto opções. Onde temos o código: <tr>
<th>Nome País</th>
<th>Moeda</th>
<th>População</th>
</tr>
Incluímos a linha:
<th colspan="2">Opções</th>
Imediatamente acima da tag </tr>.
Com esta última linha de código, implementámos um método que permitirá efectuar a edição e eliminação de registos.
![Page 33: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/33.jpg)
CRUD com PHP18.32 Exercício com CRUD
Criar o script editarpais.php
Este script vai permitir que o registo seleccionado seja editado. Na prática, o utilizador ao seleccionar o botão “Editar” na página listar.php, vai chamar este script com o parâmetro do registo a editar. No script editar.php, vamos recuperar o id do registo, preencher os campos com o seu valor e permitir que o utilizador faça a respectiva alteração. A nível de SQL, será implementado um update ao registo.
![Page 34: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/34.jpg)
CRUD com PHP18.33 Exercício com CRUD
Código do script editarpais.php
Neste passo vamos criar um novo ficheiro editarpais.php e inluir o seguinte código HTML:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
Editar os dados do País:<br />
<form name="editar" action="introduzireditar.php" method="POST">
<label for="nomepais">Nome País: </label>
<input type="text" name="nomepais" value="" />
<br />
![Page 35: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/35.jpg)
CRUD com PHP18.34 Exercício com CRUD
<label for="moedapais">Moeda: </label>
<input type="text" name="moedapais" value="" />
<br />
<label for="populacaopais">População: </label>
<input type="text" name="populacaopais" value="" />
<br />
<input type="submit" name =“actualizar” value="Actualizar" />
</form>
<a href="listar.php">Voltar</a>
</body>
</html>
![Page 36: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/36.jpg)
CRUD com PHP18.35 Exercício com CRUD
Código PHP para extrair o ID do registo a editar
Criar um bloco de código PHP logo acima da primeira linha HTML. Colocar o seguinte código:
//testa se a variável superglobal foi inicializada
if (!isset( $_GET["idpais"]))
{
die("Id do país não fornecido.");
}
//atribui o valor do campo escondido do form à variável
$idPais = $_GET["idpais"];
//grava o id do pais numa sessão
session_start();
$_SESSION["idpais"] = $idPais;
![Page 37: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/37.jpg)
CRUD com PHP18.36 Exercício com CRUD
O código anterior primeiro testa se a variável idpais, do array superglobal existe. Se não existir, termina o script com erro. Se existir, o seu valor será guardado na sessão para mais tarde ser usado.
![Page 38: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/38.jpg)
CRUD com PHP18.37 Exercício com CRUD
Seguidamente, colocamos o código abaixo:
//inclui o ficheiro com as configurações da base de dados
require_once("includes/config.php");
//efectua a conexão com os dados do ficheiro config.php
$conexao = mysql_connect($dbhost, $dbuser, $dbpassword);
//testa se a conexão teve sucesso; se não teve dá erro e termina o script
if (!$conexao)
{
die('Erro de conexão: ' . mysql_error());
}
![Page 39: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/39.jpg)
CRUD com PHP18.38 Exercício com CRUD
mysql_select_db("aulasphp", $conexao);
mysql_set_charset('utf8',$conexao);
$sql = "SELECT * FROM paises WHERE id_pais = " . mysql_real_escape_string($idPais);
$paises = mysql_query($sql);
if (mysql_num_rows($paises) == 0)
{
die("Registo não encontrado" );
}
$registo = mysql_fetch_assoc($paises);
$nomePais = $registo ["nome_pais"];
$moedaPais = $registo ["moeda_pais"];
$populacaoPais = $registo ["populacao_pais"];
![Page 40: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/40.jpg)
CRUD com PHP18.39 Exercício com CRUD
Parte do código anterior já é conhecido. O query SQL executado pesquisa na tabela de países o país com o ID pretendido e atribui o resultado do query a um array associativo para podermos usar os campos.
![Page 41: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/41.jpg)
CRUD com PHP18.40 Exercício com CRUD
Alteraçao dos inputs do formulário.
Com os dados do registo já atribuídos a um array, podemos afixá-los no form, através do campo “value” de cada input do form. Alterar os inputs de acordo com as instrucções abaixo:
<input type="text" name="nomepais" value="<?php echo $nomePais; ?>" />
<input type="text" name="moedapais" value="<?php echo $moedaPais; ?>" />
<input type="text" name="populacaopais" value="<?php echo $populacaoPais; ?>" />
![Page 42: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/42.jpg)
CRUD com PHP18.41 Exercício com CRUD
Actualizar o script introduzireditar.php
Este script deve ser alterado para servir não só para introduzir informação, mas também para permitir a edição dos mesmos. As alterações a efectuar são as seguintes:
Detectar se foi efectuado um POSTComo vamos usar o mesmo script para inserir e editar registos, necessitamos de testar se foi efectuado um POST. Caso não tenha sido feito um POST, o form é apresentado, se pelo contrário, tivermos efectuado um POST, vamos detectar se devemos fazer um insert ou um update.inserir o código seguinte no início do script introduzireditar.php:
![Page 43: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/43.jpg)
CRUD com PHP18.42 Exercício com CRUD
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
//inclui o ficheiro com as configurações da base de dados
require_once("includes/config.php");
//efectua a conexão com os dados do ficheiro config.php
$conexao = mysql_connect($dbhost, $dbuser, $dbpassword);
//testa se a conexão teve sucesso; se não teve dá erro e termina o script
if (!$conexao)
{
die('Erro de conexão: ' . mysql_error());
}
mysql_select_db("aulasphp", $conexao);
mysql_set_charset('utf8',$conexao);
![Page 44: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/44.jpg)
CRUD com PHP18.43 Exercício com CRUD
O código anterior testa se foi efectuado um POST, efectua o require das configurações da ligação à base de dados, e termina o script se a ligação não for efectuada, é feita também a selecção da base de dados e definido o charset da ligação.
![Page 45: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/45.jpg)
CRUD com PHP18.44 Exercício com CRUD
Efectuar insert ou update?
O próximo bloco de código vai permitir efectuar um insert ou update, dependendo de uma condição. Vejamos o código seguinte, que deve ser inserido logo após a última instrucção do código anterior.
![Page 46: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/46.jpg)
CRUD com PHP18.45 Exercício com CRUD
if (array_key_exists("actualizar", $_POST))
{
session_start();
$idPais = mysql_real_escape_string($_SESSION["idpais"]);
$nomepais = mysql_real_escape_string($_POST["nomepais"]);
$moedapais = mysql_real_escape_string($_POST["moedapais"]);
$populacaopais = mysql_real_escape_string($_POST["populacaopais"]);
$sql = "UPDATE paises SET nome_pais = '" . $nomepais . "', moeda_pais = " .
$moedapais . " , populacao_pais = " . $populacaopais . "
WHERE id_pais = " . $idPais;
$update = mysql_query($sql);
if (!$update)
{
echo $sql;
echo 'Erro ao actualizar o registo: ' . mysql_error();
}
}
![Page 47: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/47.jpg)
CRUD com PHP18.46 Exercício com CRUD
else
{
$nomePais = mysql_real_escape_string($_POST["nomepais"]);
$moedaPais = mysql_real_escape_string($_POST["moedapais"]);
$populacaoPais = mysql_real_escape_string($_POST["populacaopais"]);
$sql = "INSERT INTO paises (nome_pais, moeda_pais, populacao_pais)" .
" VALUES ('" . $nomePais . "', '" . $moedaPais . "', "
. $populacaoPais . ")";
$insert = mysql_query($sql);
if (!$insert)
{
echo $sql;
echo 'Erro ao inserir o registo: ' . mysql_error();
}
}
![Page 48: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/48.jpg)
CRUD com PHP18.47 Exercício com CRUD
Este código que introduzimos é responsável pelo seguinte:
Testar de onde vem o POSTTesta se no array superglobal $_POST existe uma chave com o nome “actualizar”. Isto é efectuado com a função array_key_exists(). Se existir esta chave, significa que o POST foi efectuado do form no script editarpais.php. O código HTML responsável por esta acção é seguinte:<input type="submit" name="actualizar" value="Actualizar" />
O POST contém a chave “actualizar”Se o POST contém a chave actualizar, devemos recuperar os dados submetidos pelo form do array $_POST, e recuperar também da sessão o ID do registo que desejamos alterar, que foi guardado préviamente no script editarpais.php.O código responsável por estas acções é o exposto abaixo:
session_start();
$idPais = mysql_real_escape_string($_SESSION["idpais"]);
$nomepais = mysql_real_escape_string($_POST["nomepais"]);
$moedapais = mysql_real_escape_string($_POST["moedapais"]);
$populacaopais = mysql_real_escape_string($_POST["populacaopais"]);
![Page 49: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/49.jpg)
CRUD com PHP18.48 Exercício com CRUD
Construir o query SQL e efectuar o UPDATENo código abaixo, vamos construir o nosso query SQL e executá-lo:
$sql = "UPDATE paises SET nome_pais = '" . $nomepais . "', moeda_pais = " . $moedapais . " , populacao_pais = " . $populacaopais . “ WHERE id_pais = " . $idPais;
$update = mysql_query($sql);
if (!$update)
{
echo 'Erro ao actualizar o registo: ' . mysql_error();
}
}E assim conclui a parte do código para editar um registo. Seguidamente vamos verificar como podemos inserir um novo registo.
![Page 50: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/50.jpg)
CRUD com PHP18.49 Exercício com CRUD
Inserir um novo registoA inserção de um novo registo será efectuada sempre como alternativa à condição. Resumidamente o que será efectuado será uma edição de um registo, caso no array $_POST exista a chave “actualizar”, se não existir, será efectuado uma inserção de um novo registo.
if (array_key_exists("actualizar", $_POST))
{
// Editar o registo
}
else
{
// inserir o registo
}
![Page 51: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/51.jpg)
CRUD com PHP18.50 Exercício com CRUD
Devemos introduzir o código abaixo no “else” da condição:
$nomePais = mysql_real_escape_string($_POST["nomepais"]);
$moedaPais = mysql_real_escape_string($_POST["moedapais"]);
$populacaoPais = mysql_real_escape_string($_POST["populacaopais"]);
$sql = "INSERT INTO paises (nome_pais, moeda_pais, populacao_pais)" .
" VALUES ('" . $nomePais . "', '" . $moedaPais . "', "
. $populacaoPais . ")";
$insert = mysql_query($sql);
if (!$insert)
{
echo 'Erro ao inserir o registo: ' . mysql_error();
}
}
Este pedaço de código é semelhante ao anterior, sendo que a principal diferença situa-se no facto de ser efectuado um INSERT em vez de um UPDATE.
![Page 52: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/52.jpg)
CRUD com PHP18.51 Exercício com CRUD
Devemos introduzir o código abaixo no “else” da condição:
$nomePais = mysql_real_escape_string($_POST["nomepais"]);
$moedaPais = mysql_real_escape_string($_POST["moedapais"]);
$populacaoPais = mysql_real_escape_string($_POST["populacaopais"]);
$sql = "INSERT INTO paises (nome_pais, moeda_pais, populacao_pais)" .
" VALUES ('" . $nomePais . "', '" . $moedaPais . "', "
. $populacaoPais . ")";
$insert = mysql_query($sql);
if (!$insert)
{
echo 'Erro ao inserir o registo: ' . mysql_error();
}
}
Este pedaço de código é semelhante ao anterior, sendo que a principal diferença situa-se no facto de ser efectuado um INSERT em vez de um UPDATE.
![Page 53: 18 - CRUD com php](https://reader033.fdocumentos.tips/reader033/viewer/2022061616/555e3513d8b42aad058b4723/html5/thumbnails/53.jpg)
CRUD com PHP18.52 Exercício com CRUD
O script eliminarpais.php
Para completar o nosso exercício, falta implementar uma forma de eliminar registos. A implementação desta funcionalidade ficará a cargo dos formandos.
Nota: a solução será fornecida com o material deste curso.