CRUD com PHP, MySQL & Bootstrap 5 (Create, Read, Update, Delete)

0
15411
- Conheça o nosso guia -Carreira em TI: Guia Completo para Construir uma Carreira de Sucesso em TI

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

0) { foreach($usuarios as $usuario) { ?> Nenhum usuário encontrado'; } ?>
ID Nome Email Data Nascimento Ações
=$usuario['id']?> =$usuario['nome']?> =$usuario['email']?> =date('d/m/Y', strtotime($usuario['data_nascimento']))?>  Visualizar  Editar

navbar.php


mensagem.php




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.

- Conheça o nosso guia -