O desenvolvimento web moderno frequentemente exige a manipulação de dados de maneira dinâmica e eficiente e uma das práticas essenciais nesse contexto é a implementação de operações CRUD — Create (Criar), Read (Ler), Update (Atualizar) e Delete (Excluir), portanto, essas operações são fundamentais para gerenciar dados em aplicativos web, permitindo que os usuários interajam com o sistema de forma prática e intuitiva. Nesse tutorial, iremos aprender a criar um CRUD com PHP, MySQL & Bootstrap 5 (Create, Read, Update, Delete).
Ao longo deste tutorial, abordaremos cada uma das operações CRUD em detalhes, desde a configuração do ambiente de desenvolvimento até a implementação e estilização das funcionalidades. No final, você terá um aplicativo totalmente funcional, capaz de realizar todas as operações básicas de gerenciamento de dados com uma interface amigável e profissional.
Vamos agora explorar como implementar um sistema CRUD utilizando PHP, MySQL e Bootstrap 5.
Banco de dados MySQL
Criar banco de dados:
CREATE DATABASE canalti;
Usar a base dados recém-criada:
USE canalti;
Estrutura do Banco de dados:
-- MySQL dump 10.13 Distrib 8.0.16, for macos10.14 (x86_64)
--
-- Host: localhost Database: canalti
-- ------------------------------------------------------
-- Server version 8.0.12
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
SET NAMES utf8 ;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table usuarios
--
DROP TABLE IF EXISTS usuarios;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE usuarios (
id int(11) NOT NULL AUTO_INCREMENT,
nome varchar(100) NOT NULL,
email varchar(100) NOT NULL,
data_nascimento date NOT NULL,
senha varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table usuarios
--
LOCK TABLES usuarios WRITE;
/*!40000 ALTER TABLE usuarios DISABLE KEYS */;
/*!40000 ALTER TABLE usuarios ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2024-04-22 13:50:30
conexao.php
index.php
Usuários
Lista de Usuários
Adicionar usuário
ID
Nome
Email
Data Nascimento
Ações
0) {
foreach($usuarios as $usuario) {
?>
=$usuario['id']?>
=$usuario['nome']?>
=$usuario['email']?>
=date('d/m/Y', strtotime($usuario['data_nascimento']))?>
Visualizar
Editar
Nenhum usuário encontrado';
}
?>
navbar.php
mensagem.php
= $_SESSION['mensagem']; ?>
acoes.php
0) {
$_SESSION['mensagem'] = 'Usuário criado com sucesso';
header('Location: index.php');
exit;
} else {
$_SESSION['mensagem'] = 'Usuário não foi criado';
header('Location: index.php');
exit;
}
}
if (isset($_POST['update_usuario'])) {
$usuario_id = mysqli_real_escape_string($conexao, $_POST['usuario_id']);
$nome = mysqli_real_escape_string($conexao, trim($_POST['nome']));
$email = mysqli_real_escape_string($conexao, trim($_POST['email']));
$data_nascimento = mysqli_real_escape_string($conexao, trim($_POST['data_nascimento']));
$senha = mysqli_real_escape_string($conexao, trim($_POST['senha']));
$sql = "UPDATE usuarios SET nome = '$nome', email = '$email', data_nascimento = '$data_nascimento'";
if (!empty($senha)) {
$sql .= ", senha='" . password_hash($senha, PASSWORD_DEFAULT) . "'";
}
$sql .= " WHERE id = '$usuario_id'";
mysqli_query($conexao, $sql);
if (mysqli_affected_rows($conexao) > 0) {
$_SESSION['mensagem'] = 'Usuário atualizado com sucesso';
header('Location: index.php');
exit;
} else {
$_SESSION['mensagem'] = 'Usuário não foi atualizado';
header('Location: index.php');
exit;
}
}
if (isset($_POST['delete_usuario'])) {
$usuario_id = mysqli_real_escape_string($conexao, $_POST['delete_usuario']);
$sql = "DELETE FROM usuarios WHERE id = '$usuario_id'";
mysqli_query($conexao, $sql);
if (mysqli_affected_rows($conexao) > 0) {
$_SESSION['message'] = 'Usuário deletado com sucesso';
header('Location: index.php');
exit;
} else {
$_SESSION['message'] = 'Usuário não foi deletado';
header('Location: index.php');
exit;
}
}
?>
usuario-create.php
Usuário - Criar
Adicionar usuário
Voltar
usuario-edit.php
Usuário - Editar
Editar usuário
Voltar
0) {
$usuario = mysqli_fetch_array($query);
?>
Usuário não encontrado";
}
}
?>
usuario-view.php
Usuário - Visualizar
Visualizar usuário
Voltar
0) {
$usuario = mysqli_fetch_array($query);
?>
=$usuario['nome'];?>
=$usuario['email'];?>
=date('d/m/Y', strtotime($usuario['data_nascimento']));?>
Usuário não encontrado";
}
}
?>
Conclusão
Implementar um sistema CRUD com PHP, MySQL e Bootstrap 5 é, sem dúvida, uma excelente maneira de entender os fundamentos do desenvolvimento web e a interação entre o front-end e o back-end. Ao longo deste tutorial, portanto, exploramos como essas três tecnologias se combinam para criar uma aplicação web funcional e moderna.
Através das operações de Create, Read, Update e Delete, você aprendeu a realizar as tarefas essenciais de gerenciamento de dados, permitindo a criação, visualização, atualização e exclusão de registros de forma dinâmica. Esse conhecimento é, portanto, fundamental para o desenvolvimento de aplicações web mais complexas e robustas no futuro.
Espero que este tutorial tenha fornecido uma base sólida para você continuar explorando e aprimorando suas habilidades em desenvolvimento web. Além disso, a prática contínua e a busca por novos desafios são essenciais para se tornar um desenvolvedor mais competente e versátil. Portanto, continue experimentando, aprendendo e desenvolvendo projetos cada vez mais sofisticados.
