Clique aqui e veja todas as aulas
1. Revisando a Classe Task
Anteriormente, adicionamos o método createTask() para inserir novas tarefas no banco de dados. Agora, o próximo passo é listar essas tarefas de forma organizada na interface do usuário. Para isso, vamos criar o método getAllTasks().
2. Adicionando o Método getAllTasks()
Vamos adicionar o método que vai obter todas as tarefas do banco de dados e retorná-las para exibição.
Passo 1: Implementando o Método na Classe Task
No arquivo Task.php, adicione o seguinte código:
public function getAllTasks() {
// Query para buscar todas as tarefas
$query = "SELECT id, name, description, status FROM " . $this->table_name . " ORDER BY id DESC";
// Preparar a consulta SQL
$stmt = $this->conn->prepare($query);
// Executar a consulta
$stmt->execute();
// Obter o resultado
return $stmt->get_result();
}3. Explicação do Método
- Query de Seleção: A consulta SQL seleciona os campos
id,name,descriptionestatusda tabelatasks, organizando as tarefas em ordem decrescente deid(para que as tarefas mais recentes apareçam primeiro). - Preparação e Execução: Utilizamos
prepare()eexecute()para executar a consulta de forma segura, prevenindo injeção de SQL. - Retorno do Resultado: O método retorna o resultado da consulta com todas as tarefas encontradas no banco de dados.
4. Atualizando a Página tasks.php para Exibir as Tarefas
Agora, vamos atualizar o arquivo tasks.php para listar as tarefas usando o método getAllTasks().
<?php
require_once 'classes/Database.php';
require_once 'classes/Task.php';
$database = new Database();
$db = $database->getConnection();
$task = new Task($db);
// Processando o envio do formulário para criar nova tarefa
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['create'])) {
$task->name = $_POST['name'];
$task->description = $_POST['description'];
$task->status = $_POST['status'];
if ($task->createTask()) {
echo "Tarefa criada com sucesso!";
} else {
echo "Erro ao criar tarefa.";
}
}
// Obtendo todas as tarefas
$tarefas = $task->getAllTasks();
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Gerenciador de Tarefas</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
<div class="container mt-5">
<h2>Gerenciador de Tarefas</h2>
<!-- Formulário para criar nova tarefa -->
<form method="post">
<div class="form-group">
<label for="name">Nome da Tarefa</label>
<input type="text" name="name" class="form-control" required>
</div>
<div class="form-group">
<label for="description">Descrição</label>
<textarea name="description" class="form-control" required></textarea>
</div>
<div class="form-group">
<label for="status">Status</label>
<input type="text" name="status" class="form-control" required>
</div>
<button type="submit" name="create" class="btn btn-primary">Criar Tarefa</button>
</form>
<!-- Exibindo todas as tarefas -->
<h3 class="mt-5">Lista de Tarefas</h3>
<ul class="list-group">
<?php while ($row = $tarefas->fetch_assoc()): ?>
<li class="list-group-item">
<strong><?php echo $row['name']; ?></strong><br>
<?php echo $row['description']; ?><br>
<em>Status: <?php echo $row['status']; ?></em>
</li>
<?php endwhile; ?>
</ul>
</div>
</body>
</html>5. Testando a Listagem de Tarefas
- Acesse a página no navegador.
- Verifique se as tarefas estão sendo listadas corretamente.
- Insira novas tarefas e veja se elas aparecem imediatamente na lista após a criação.
6. Exercício Prático
- Tente melhorar a exibição das tarefas usando componentes do Bootstrap, como cartões (
cards) ou tabelas para uma visualização mais organizada. - Adicione mais tarefas e observe como o sistema as lista em ordem decrescente de criação.
7. Próximos Passos
Agora que conseguimos listar todas as tarefas, vamos avançar para a implementação das funcionalidades de atualização e deleção de tarefas, completando assim o ciclo de CRUD do nosso sistema.
