Você está na página 1de 12

INSTITUTO DE TRANSPORTES E COMUNICAÇÃO

Desenvolver páginas web dinâmicas com


programação do lado do servidor

Conexão PHP & MySQL (PDO) 1


Visualização de dados da Base de Dados

Docente: Valdinácio F. Paulo Martins


 Iniciaremos com a conecção do MySQL & PHP. Como o primeiro passo,
crie a base de dados nome ITC2023, com a tabela usuario os campos
codigo (auto-incremento), username (varchar), password (varchar), nome
(varchar), email (varchar).
 ATENÇÃO: Tome nota de a grafia dos campos da base de dados.

 Passo 2: Vamos criar o formulário HTML e CSS. Mas de modo a ter uma
aparência agradável e ampliar os nossos conhecimentos podemos utilizar
o framework bootstrap.
 Acede ao site oficial: https://getbootstrap.com/docs/4.5/getting-
started/download/ e baixe o ficheiro .ZIP da secção Compiled CSS and JS.
 Descompacte a parta e coloque dentro do seu projecto. Usaremos apenas
o ficheiro bootstrap.min.css da pasta bootstrap/css. Faça link no seu fic.
NOTA: Em caso de dúvida consulte a documentação no site oficial:
2
https://getbootstrap.com/docs/4.5/components/forms/
 Considere o código a seguir, gravar como listar.php:
<!DOCTYPE html>
<head> <a href="index.php">Listar </a> |
<a href="gravar.php">Register </a> |
<title>Listar</title>
<a href="search.php">Search </a>
</head> <table cellpadding="2" cellspacing
<html> ="2" border="1">
<body> <tr>
<th>Codigo</th>
<?php <th>Username</th>
require 'connect.php'; <th>Nome de Completo</th>
if(isset($_GET['action']) && $_GET['action']=='delete'){ <th>E-mail</th>
<th>Opções</th>
$cmd = $conn->prepare('delete from usuario where codigo = :codigo'); </tr>
$cmd->bindValue('codigo', $_GET['codigo']);
$cmd->execute();
}
$cmd = $conn->prepare('select * from usuario');
$cmd->execute();
?> 3
<?php while($dados = $cmd->fetch(PDO::FETCH_OBJ)) { ?>
<tr>
<td><?php echo $dados->codigo; ?></td>
<td><?php echo $dados->username; ?></td>
<td><?php echo $dados->nome; ?></td>
<td><?php echo $dados->email; ?></td>
<td><a
href="index.php?codigo=<?php echo $dados->codigo; ?>
&action=delete" onclick="return confirm('Tem certeza que pretende apagar?')">Apagar</a>
| <a href="update.php?username=<?php echo $dados->username; ?>">Editar</a>
</td>
</tr> NOTA:
<?php } ?> O código da página listar.php, já incorpora o
remoção de dados da base de dados.
</table>
Dai que não precisamos de criar o ficheiro
</body> apagar.php
</html> 4
 Passo 3: Vamos criar dois ficheiro PHP. Um chamado connect.php e outro gravar.php
 Ficheiro connect.php
<?php
try {
$conn = new PDO("mysql:host=localhost;dbname=ITC2023", 'root', '');
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//echo "Connectado com successo!";
} catch(PDOException $e) {
echo "Conecção Falhada: " . $e->getMessage();
}
?>
5
INSTITUTO DE TRANSPORTES E COMUNICAÇÃO
Desenvolver páginas web dinâmicas com
programação do lado do servidor

PHP & MySQL (PDO) 6


Inserção de dados na Base de Dados

Docente: Valdinácio F. Paulo Martins


 Ficheiro gravar.php
<!DOCTYPE html>
<head>
<title>Pesquisar</title>
</head>
<html>
<body>
<a href=“listar.php">Listar</a> | <a href="gravar.php">Register</a> | <a href="search.php">Search</a>
<p>
<?php
require 'connect.php';
if(isset($_POST['save'])) {
$cmd = $conn->prepare('insert into usuario(username, password, nome, email)
values(:username, :password, :fullname, :email)');
$cmd->bindValue(':username', $_POST['username']);
$cmd->bindValue(':password', md5($_POST['password']));
$cmd->bindValue(':fullname', $_POST['fullname']);
$cmd->bindValue(':email', $_POST['email']);
$cmd->execute();
header('location:listar.php');
7
} ?>
 Ficheiro gravar.php (continuação)
<tr>
<form method="post"> <td>Nome Completo</td>
<fieldset> <td><input type="text" name="fullname">
</td>
<legend>Informações do Usuarios</legend> </tr>
<table cellpadding="2" cellspacing="2"> <tr>
<td>E-mail</td>
<tr> <td><input type="text" name="email">
<td>Username</td> </td>
</tr>
<td><input type="text" name="username"></td> <tr>
</tr> <td>&nbsp;</td>
<td><input type="submit" name="save“
<tr> value="Gravar"></td>
<td>Password</td> </tr>
</table>
<td><input type="password" name="password"></td> </fieldset>
</tr> </form>

8
INSTITUTO DE TRANSPORTES E COMUNICAÇÃO
Desenvolver páginas web dinâmicas com
programação do lado do servidor

PHP & MySQL (PDO) 9


Edição de dados da Base de Dados

Docente: Valdinácio F. Paulo Martins


 Crie um ficheiro update.php e adicione o código a seguir:
<?php
require 'connect.php';
if(isset($_POST['save'])) {
// Localizando o usuario por username
$cmd = $conn->prepare('select * from usuario where username = :username');
$cmd->bindValue('username', $_POST['username']);
$cmd->execute();
$dados = $cmd->fetch(PDO::FETCH_OBJ);
// Actualizando a informação do usuario
$cmd = $conn->prepare('update usuario set password = :password,
nome = :fullname, email = :email where username = :username');
$cmd->bindValue('username', $_POST['username']);
$cmd->bindValue('password', $_POST['password'] == '' ? $dados->password : $_POST['password']);
$cmd->bindValue('fullname', $_POST['fullname']);
$cmd->bindValue('email', $_POST['email']);
$cmd->execute();
header('location:listar.php'); 10
}
//Selecção de dados para edição
$cmd = $conn->prepare('select * from usuario where username = :username');
$cmd->bindValue('username', $_GET['username']);
$cmd->execute();
$dados = $cmd->fetch(PDO::FETCH_OBJ);
?>
 A seguir vamos a área do formulário:
<form method="post">
<fieldset>
<legend>Informações do Usuario</legend>
<table cellpadding="2" cellspacing="2">
<tr>
<td>Username</td>
<td><?php echo $dados->username; ?>
<input type="hidden" name="username"
value="<?php echo $dados->username; ?>"></td>
</tr>
<tr> 11
<td>Password</td>
<td><input type="text" name="password"></td>
</tr>
<tr>
<td>Nome Copleto</td>
<td><input type="text" name="fullname" value="<?php echo $dados->nome; ?>"></td>
</tr>
<tr>
<td>E-mail</td>
<td><input type="text" name="email" value="<?php echo $dados->email; ?>"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="save" value="Save"></td>
</tr>
</table>
</fieldset>
</form> 12

Você também pode gostar