Clique aqui e veja todas as aulas
1. Revisando a Classe Task
Na aula anterior, criamos a estrutura da classe Task e começamos a trabalhar com o CRUD. Agora, vamos adicionar um método específico para criar tarefas.
Passo 1: Implementando o Método createTask()
O método createTask() será uma função dentro da classe Task que vai lidar diretamente com a inserção de novas tarefas no banco de dados.
2. Adicionando o Método createTask() na Classe Task
Abra o arquivo Task.php e adicione o seguinte método à classe Task:
public function createTask() {
// Query para inserir uma nova tarefa
$query = "INSERT INTO " . $this->table_name . " (name, description, status) VALUES (?, ?, ?)";
// Preparar a consulta SQL
$stmt = $this->conn->prepare($query);
// Limpar os dados
$this->name = htmlspecialchars(strip_tags($this->name));
$this->description = htmlspecialchars(strip_tags($this->description));
$this->status = htmlspecialchars(strip_tags($this->status));
// Associar os parâmetros
$stmt->bind_param("sss", $this->name, $this->description, $this->status);
// Executar a consulta
if ($stmt->execute()) {
return true;
} else {
return false;
}
}3. Explicação do Método
- Query de Inserção: A query SQL usada para inserir dados na tabela
tasks. - Sanitização de Dados: Utilizamos
htmlspecialchars()estrip_tags()para limpar os dados antes de inseri-los no banco de dados, ajudando a prevenir ataques de XSS. - Bind de Parâmetros: Usamos o método
bind_param()para associar os valores das variáveisname,descriptionestatusaos respectivos campos da tabela.
4. Atualizando o Formulário para Adicionar Novas Tarefas
Agora, vamos modificar o arquivo tasks.php para utilizar o método createTask() quando o formulário for enviado.
<?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->read();
?>5. Testando o Método createTask()
Para testar a criação de tarefas:
- Acesse o formulário de tarefas no navegador.
- Insira os dados da tarefa.
- Verifique se a tarefa foi corretamente adicionada ao banco de dados e exibida na lista de tarefas.
6. Melhorando a Usabilidade
Adicione uma validação simples no formulário HTML para garantir que todos os campos sejam preenchidos antes do envio.
<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>7. Exercício Prático
- Tente adicionar várias tarefas e verifique se todas são listadas corretamente.
- Experimente inserir uma tarefa sem preencher um campo obrigatório e veja como o sistema reage.
8. Próximos Passos
Na próxima aula, vamos expandir as funcionalidades para permitir que o usuário atualize e exclua tarefas, completando assim o ciclo de CRUD com a interface gráfica.
