Neste tutorial, vamos criar uma aplicação crud, que significa(acrónimo do inglês Create, Read, Update and Delete) são as quatro operações básicas (criação, consulta, atualização e destruição de dados) utilizadas em base de dados relacionais.
Vejamos agora a estrutura do crud que vamos criar.
index.php : Página inicial do nosso aplicativo CRUD.
<?php
// Conexão
include_once 'php_action/db_connect.php';
// Header
include_once 'includes/header.php';
// Message
include_once 'includes/message.php';
?>
<div class="row">
<div class="col s12 m8 push-m2">
<h3 class="light"> Clientes </h3>
<table class="striped">
<thead>
<tr>
<th>Nome:</th>
<th>Sobrenome:</th>
<th>Email:</th>
<th>Idade:</th>
</tr>
</thead>
<tbody>
<?php
$sql = "SELECT * FROM clientes";
$resultado = mysqli_query($connect, $sql);
if(mysqli_num_rows($resultado) > 0):
while($dados = mysqli_fetch_array($resultado)):
?>
<tr>
<td><?php echo $dados['nome']; ?></td>
<td><?php echo $dados['sobrenome']; ?></td>
<td><?php echo $dados['email']; ?></td>
<td><?php echo $dados['idade']; ?></td>
<td><a href="editar.php?id=<?php echo $dados['id']; ?>" class="btn-floating orange"><i class="material-icons">edit</i></a></td>
<td><a href="#modal<?php echo $dados['id']; ?>" class="btn-floating red modal-trigger"><i class="material-icons">delete</i></a></td>
<!-- Modal Structure -->
<div id="modal<?php echo $dados['id']; ?>" class="modal">
<div class="modal-content">
<h4>Opa!</h4>
<p>Tem certeza que deseja excluir esse cliente?</p>
</div>
<div class="modal-footer">
<form action="php_action/delete.php" method="POST">
<input type="hidden" name="id" value="<?php echo $dados['id']; ?>">
<button type="submit" name="btn-deletar" class="btn red">Sim, quero deletar</button>
<a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">Cancelar</a>
</form>
</div>
</div>
</tr>
<?php
endwhile;
else: ?>
<tr>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
</tr>
<?php
endif;
?>
</tbody>
</table>
<br>
<a href="adicionar.php" class="btn">Adicionar cliente</a>
</div>
</div>
<?php
// Footer
include_once 'includes/footer.php';
?>
adicionar.php
<?php
// Header
include_once 'includes/header.php';
?>
<div class="row">
<div class="col s12 m6 push-m3">
<h3 class="light"> Novo Cliente </h3>
<form action="php_action/create.php" method="POST">
<div class="input-field col s12">
<input type="text" name="nome" id="nome">
<label for="nome">Nome</label>
</div>
<div class="input-field col s12">
<input type="text" name="sobrenome" id="sobrenome">
<label for="sobrenome">Sobrenome</label>
</div>
<div class="input-field col s12">
<input type="text" name="email" id="email">
<label for="email">Email</label>
</div>
<div class="input-field col s12">
<input type="text" name="idade" id="idade">
<label for="idade">Idade</label>
</div>
<button type="submit" name="btn-cadastrar" class="btn"> Cadastrar </button>
<a href="index.php" class="btn green"> Lista de clientes </a>
</form>
</div>
</div>
<?php
// Footer
include_once 'includes/footer.php';
?>
editar.php
<?php
// Conexão
include_once 'php_action/db_connect.php';
// Header
include_once 'includes/header.php';
// Select
if(isset($_GET['id'])):
$id = mysqli_escape_string($connect, $_GET['id']);
$sql = "SELECT * FROM clientes WHERE id = '$id'";
$resultado = mysqli_query($connect, $sql);
$dados = mysqli_fetch_array($resultado);
endif;
?>
<div class="row">
<div class="col s12 m6 push-m3">
<h3 class="light"> Editar Cliente </h3>
<form action="php_action/update.php" method="POST">
<input type="hidden" name="id" value="<?php echo $dados['id'];?>">
<div class="input-field col s12">
<input type="text" name="nome" id="nome" value="<?php echo $dados['nome'];?>">
<label for="nome">Nome</label>
</div>
<div class="input-field col s12">
<input type="text" name="sobrenome" value="<?php echo $dados['sobrenome'];?>" id="sobrenome">
<label for="sobrenome">Sobrenome</label>
</div>
<div class="input-field col s12">
<input type="text" value="<?php echo $dados['email'];?>" name="email" id="email">
<label for="email">Email</label>
</div>
<div class="input-field col s12">
<input type="text" value="<?php echo $dados['idade'];?>" name="idade" id="idade">
<label for="idade">Idade</label>
</div>
<button type="submit" name="btn-editar" class="btn"> Atualizar</button>
<a href="index.php" class="btn green"> Lista de clientes </a>
</form>
</div>
</div>
<?php
// Footer
include_once 'includes/footer.php';
?>
Criação do banco de dados e tabelas
Banco de dados : crud.sql
CREATE TABLE `clientes` (
`id` int(11) NOT NULL,
`nome` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`sobrenome` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`idade` int(3) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Tabela clientes
INSERT INTO `clientes` (`id`, `nome`, `sobrenome`, `email`, `idade`) VALUES
(10, 'teste', 'teste', 'teste@gmail.com', 23),
(27, 'André', 'Sousa', 'Andre@gmail.com', 25);
Vamos criar duas Pastas, uma chamada includes e outra chamada php_action dentro da pasta include deve conter os arquivos (footer.php,header.php,message.php)
footer.php- fecha a página e criar um rodapé.
<!--JavaScript at end of body for optimized loading-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-beta/js/materialize.min.js"></script>
<script>
M.AutoInit();
</script>
</body>
</html>
header.php-/chama o cabeçalho,define inicio de um página HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title> Sistema de cadastro de clientes</title>
<!--Import Google Icon Font-->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<!--Import materialize.css-->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-beta/css/materialize.min.css">
<!--Let browser know website is optimized for mobile-->
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</head>
<body>
message.php
<?php
// Sessão
session_start();
if(isset($_SESSION['mensagem'])): ?>
<script>
// Mensagem
window.onload = function() {
M.toast({html: '<?php echo $_SESSION['mensagem']; ?>'});
};
</script>
<?php
endif;
session_unset();
?>
Agora na pasta chamada php_action coloque dentro os arquivos (create.php,db_connect.php,delete.php,update.php)
create.php - Cria novos registros com um formulário HTML e envia dados para o servidor com uma solicitação POST.
<?php
// Sessão
session_start();
// Conexão
require_once 'db_connect.php';
// Clear
function clear($input) {
global $connect;
// sql
$var = mysqli_escape_string($connect, $input);
// xss
$var = htmlspecialchars($var);
return $var;
}
if(isset($_POST['btn-cadastrar'])):
$nome = clear($_POST['nome']);
$sobrenome = clear($_POST['sobrenome']);
$email = clear($_POST['email']);
$idade = clear($_POST['idade']);
$sql = "INSERT INTO clientes (nome, sobrenome, email, idade) VALUES ('$nome', '$sobrenome', '$email', '$idade')";
if(mysqli_query($connect, $sql)):
$_SESSION['mensagem'] = "Cadastrado com sucesso!";
header('Location: ../index.php');
else:
$_SESSION['mensagem'] = "Erro ao cadastrar";
header('Location: ../index.php');
endif;
endif;
db_connect- Cria a conexão com o banco de dados.
<?php
// Conexão com banco de dados
$servername = "localhost";
$username = "root";
$password = "";
$db_name = "crud";
$connect = mysqli_connect($servername, $username, $password, $db_name);
mysqli_set_charset($connect, "utf8");
if(mysqli_connect_error()):
echo "Erro na conexão: ".mysqli_connect_error();
endif;
update.php - Atualiza os registros existentes com um formulário HTML e envia os dados ao servidor com uma solicitação POST.
<?php
// Sessão
session_start();
// Conexão
require_once 'db_connect.php';
if(isset($_POST['btn-editar'])):
$nome = mysqli_escape_string($connect, $_POST['nome']);
$sobrenome = mysqli_escape_string($connect, $_POST['sobrenome']);
$email = mysqli_escape_string($connect, $_POST['email']);
$idade = mysqli_escape_string($connect, $_POST['idade']);
$id = mysqli_escape_string($connect, $_POST['id']);
$sql = "UPDATE clientes SET nome = '$nome', sobrenome = '$sobrenome', email = '$email', idade = '$idade' WHERE id = '$id'";
if(mysqli_query($connect, $sql)):
$_SESSION['mensagem'] = "Atualizado com sucesso!";
header('Location: ../index.php');
else:
$_SESSION['mensagem'] = "Erro ao atualizar";
header('Location: ../index.php');
endif;
endif;
delete.php - Confirma e exclui registros por ID (solicitação GET para obter o ID).
<?php
// Sessão
session_start();
// Conexão
require_once 'db_connect.php';
if(isset($_POST['btn-deletar'])):
$id = mysqli_escape_string($connect, $_POST['id']);
$sql = "DELETE FROM clientes WHERE id = '$id'";
if(mysqli_query($connect, $sql)):
$_SESSION['mensagem'] = "Deletado com sucesso!";
header('Location: ../index.php');
else:
$_SESSION['mensagem'] = "Erro ao deletar";
header('Location: ../index.php');
endif;
endif;
update.php - Atualiza os registros existentes com um formulário HTML e envia os dados ao servidor com uma solicitação POST.
<?php
// Sessão
session_start();
// Conexão
require_once 'db_connect.php';
if(isset($_POST['btn-editar'])):
$nome = mysqli_escape_string($connect, $_POST['nome']);
$sobrenome = mysqli_escape_string($connect, $_POST['sobrenome']);
$email = mysqli_escape_string($connect, $_POST['email']);
$idade = mysqli_escape_string($connect, $_POST['idade']);
$id = mysqli_escape_string($connect, $_POST['id']);
$sql = "UPDATE clientes SET nome = '$nome', sobrenome = '$sobrenome', email = '$email', idade = '$idade' WHERE id = '$id'";
if(mysqli_query($connect, $sql)):
$_SESSION['mensagem'] = "Atualizado com sucesso!";
header('Location: ../index.php');
else:
$_SESSION['mensagem'] = "Erro ao atualizar";
header('Location: ../index.php');
endif;
endif;
Pronto o nosso Crud.


0 Comentários