domingo, 10 de dezembro de 2023

Construindo uma Aplicação com Banco de Dados em PHP: Uma Jornada Prática para Desenvolvedores Web


O PHP é uma linguagem de script do lado do servidor amplamente utilizada para o desenvolvimento web dinâmico. Uma parte crucial do desenvolvimento de muitas aplicações web é a integração com um banco de dados para armazenar e recuperar dados. Neste artigo, exploraremos o processo de construção de uma aplicação web simples em PHP, incorporando um banco de dados para gerenciar informações de maneira eficiente.


1. Definindo os Objetivos da Aplicação:


Antes de começar a escrever código, é essencial definir os objetivos da aplicação. O que a aplicação deve realizar? Quais informações ela deve armazenar? Neste exemplo, vamos criar uma aplicação de lista de tarefas, onde os usuários podem adicionar, editar e excluir tarefas.


2. Configurando o Ambiente de Desenvolvimento:


Certifique-se de ter um ambiente de desenvolvimento configurado com PHP instalado e um servidor web, como Apache ou Nginx. Além disso, escolha um sistema de gerenciamento de banco de dados, como MySQL ou SQLite, e certifique-se de que esteja instalado e configurado.


3. Criando o Banco de Dados e a Tabela:


Vamos criar um banco de dados simples chamado `tarefas` e uma tabela chamada `lista_tarefas`. Esta tabela terá colunas para `id`, `descricao` e `concluida`.



CREATE DATABASE IF NOT EXISTS tarefas;

USE tarefas;


CREATE TABLE IF NOT EXISTS lista_tarefas (

    id INT AUTO_INCREMENT PRIMARY KEY,

    descricao VARCHAR(255) NOT NULL,

    concluida BOOLEAN NOT NULL DEFAULT 0

);



4. Estruturando o Projeto PHP:


Organize o projeto PHP em uma estrutura adequada. Por exemplo:



meu_projeto/

|-- index.php

|-- conexao.php

|-- tarefas.php

|-- estilo.css



5. Criando a Conexão com o Banco de Dados:


Crie um arquivo `conexao.php` para estabelecer a conexão com o banco de dados usando a Classe PDO.



<?php

try {

    $conexao = new PDO("mysql:host=localhost;dbname=tarefas", "usuario", "senha");

    $conexao->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (PDOException $e) {

    echo "Erro de conexão: " . $e->getMessage();

}

?>



6. Implementando as Operações CRUD:


No arquivo `tarefas.php`, implemente as operações CRUD (Create, Read, Update, Delete) para interagir com o banco de dados.



<?php

include 'conexao.php';


function adicionarTarefa($descricao) {

    global $conexao;

    $sql = "INSERT INTO lista_tarefas (descricao) VALUES (:descricao)";

    $consulta = $conexao->prepare($sql);

    $consulta->bindParam(':descricao', $descricao, PDO::PARAM_STR);

    return $consulta->execute();

}


function obterTarefas() {

    global $conexao;

    $sql = "SELECT * FROM lista_tarefas";

    $consulta = $conexao->query($sql);

    return $consulta->fetchAll(PDO::FETCH_ASSOC);

}


function atualizarTarefa($id, $concluida) {

    global $conexao;

    $sql = "UPDATE lista_tarefas SET concluida = :concluida WHERE id = :id";

    $consulta = $conexao->prepare($sql);

    $consulta->bindParam(':id', $id, PDO::PARAM_INT);

    $consulta->bindParam(':concluida', $concluida, PDO::PARAM_BOOL);

    return $consulta->execute();

}


function excluirTarefa($id) {

    global $conexao;

    $sql = "DELETE FROM lista_tarefas WHERE id = :id";

    $consulta = $conexao->prepare($sql);

    $consulta->bindParam(':id', $id, PDO::PARAM_INT);

    return $consulta->execute();

}

?>



7. Criando a Interface do Usuário:


No arquivo `index.php`, crie a interface do usuário para interagir com as operações CRUD.



<?php

include 'tarefas.php';


if ($_SERVER['REQUEST_METHOD'] === 'POST') {

    if (isset($_POST['adicionar'])) {

        $descricao = $_POST['descricao'];

        adicionarTarefa($descricao);

    } elseif (isset($_POST['atualizar'])) {

        $id = $_POST['id'];

        $concluida = isset($_POST['concluida']) ? 1 : 0;

        atualizarTarefa($id, $concluida);

    } elseif (isset($_POST['excluir'])) {

        $id = $_POST['id'];

        excluirTarefa($id);

    }

}


$tarefas = obterTarefas();

?>


<!DOCTYPE html>

<html lang="pt-br">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link rel="stylesheet" href="estilo.css">

    <title>Lista de Tarefas</title>

</head>

<body>

    <h1>Lista de Tarefas</h1>

    <form method="post" action="index.php">

        <input type="text" name="descricao" required>

        <button type="submit" name="adicionar">Adicionar Tarefa</button>

    </form>


    <ul>

        <?php foreach ($tarefas as $tarefa): ?>

            <li>

                <form method="post" action="index.php">

                    <input type="checkbox" name="concluida" <?php echo $tarefa['concluida'] ? 'checked' : ''; ?>>

                    <span><?php echo $tarefa['descricao']; ?></span>

                    <input type="hidden" name="id" value="<?php echo $tarefa['id']; ?>">

                    <button type="submit" name="atualizar">Atualizar</button>

                    <button type="submit" name="excluir">Excluir</button>

                </form>

            </li>

        <?php endforeach; ?>

    </ul>

</body>

</html>



8. Adicionando Estilos com CSS:


Crie um arquivo `estilo.css` para adicionar estilos à sua aplicação.


```css

body {

    font-family: Arial, sans-serif;

    margin: 20px;

}


h1 {

    color: #333;

}


form {

    margin-bottom: 20px;

}


ul {

    list-style-type: none;

    padding: 0;

}


li {

    margin-bottom: 10px;

}


input[type="checkbox"] {

    margin-right: 5px;

}



Conclusão: Criando uma Aplicação Web Dinâmica com PHP e Banco de Dados


Ao seguir os passos acima, você construiu uma aplicação web simples em PHP que interage com um banco de dados para gerenciar uma lista de tarefas. Este exemplo prático abrange desde a criação do banco de dados até a implementação das operações CRUD e a construção da interface do usuário. Lembre-se de adaptar esse exemplo de acordo com as necessidades específicas da sua aplicação e de explorar mais recursos do PHP e da manipulação de bancos de dados para aprimorar suas habilidades de desenvolvimento web.

0 comments:

Postar um comentário