📘 Aprender PHP do Zero — Parte 6: Painel de Administração Completo
Seja bem-vindo à Parte 6 da série “Aprender PHP do Zero”! Agora que você já conhece login, banco de dados e sessões, vamos criar um sistema de painel administrativo completo.
Você aprenderá a:
- Organizar seus arquivos de forma profissional
- Listar, cadastrar, editar e excluir dados (CRUD completo)
- Adicionar filtros de pesquisa
- Usar
UPDATE
eDELETE
com segurança - Testar tudo no seu Android (Acode, Termux ou Palapa)
📁 1. Organização de Arquivos
Crie a seguinte estrutura de pastas e arquivos:
/painel/ ├── conexao.php ├── index.php (lista com pesquisa) ├── cadastrar.php ├── editar.php ├── excluir.php ├── form_novo.html ├── form_editar.php
Dica: Isso facilita a manutenção e separa o visual da lógica.
🛠️ 2. Criar Banco de Dados e Tabela
CREATE DATABASE painel;
USE painel;
CREATE TABLE produtos (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100),
preco DECIMAL(10,2),
descricao TEXT
);
Você pode usar MariaDB no Termux ou XAMPP no PC, se desejar.
📄 3. Listar com busca (index.php)
<?php
require "conexao.php";
$busca = $_GET["q"] ?? "";
$sql = "SELECT * FROM produtos WHERE nome LIKE '%$busca%' ORDER BY id DESC";
$res = $conn->query($sql);
echo "<form><input name='q' value='$busca'><input type='submit' value='Buscar'></form>";
echo "<a href='form_novo.html'>Novo Produto</a><hr>";
while ($p = $res->fetch_assoc()) {
echo "<b>{$p['nome']}</b> - {$p['preco']} MZN<br>";
echo "Desc: {$p['descricao']}<br>";
echo "<a href='form_editar.php?id={$p['id']}'>Editar</a> | ";
echo "<a href='excluir.php?id={$p['id']}' onclick=\"return confirm('Tem certeza?')\">Excluir</a>";
echo "<hr>";
}
?>
📝 4. Formulário de Cadastro (form_novo.html)
<form method="POST" action="cadastrar.php">
Nome: <input name="nome"><br>
Preço: <input name="preco" type="number" step="0.01"><br>
Descrição: <br><textarea name="descricao"></textarea><br>
<input type="submit" value="Salvar">
</form>
cadastrar.php
<?php
require "conexao.php";
$nome = $_POST["nome"];
$preco = $_POST["preco"];
$desc = $_POST["descricao"];
$stmt = $conn->prepare("INSERT INTO produtos (nome, preco, descricao) VALUES (?, ?, ?)");
$stmt->bind_param("sds", $nome, $preco, $desc);
$stmt->execute();
header("Location: index.php");
?>
✏️ 5. Editar Dados (form_editar.php + editar.php)
form_editar.php
<?php
require "conexao.php";
$id = $_GET["id"];
$res = $conn->query("SELECT * FROM produtos WHERE id = $id");
$p = $res->fetch_assoc();
?>
<form method="POST" action="editar.php">
<input type="hidden" name="id" value="<?= $p['id'] ?>">
Nome: <input name="nome" value="<?= $p['nome'] ?>"><br>
Preço: <input name="preco" type="number" value="<?= $p['preco'] ?>" step="0.01"><br>
Descrição: <br><textarea name="descricao"><?= $p['descricao'] ?></textarea><br>
<input type="submit" value="Atualizar">
</form>
editar.php
<?php
require "conexao.php";
$id = $_POST["id"];
$nome = $_POST["nome"];
$preco = $_POST["preco"];
$desc = $_POST["descricao"];
$stmt = $conn->prepare("UPDATE produtos SET nome=?, preco=?, descricao=? WHERE id=?");
$stmt->bind_param("sdsi", $nome, $preco, $desc, $id);
$stmt->execute();
header("Location: index.php");
?>
🗑️ 6. Excluir Produto (excluir.php)
<?php
require "conexao.php";
$id = $_GET["id"];
$stmt = $conn->prepare("DELETE FROM produtos WHERE id=?");
$stmt->bind_param("i", $id);
$stmt->execute();
header("Location: index.php");
?>
🛡️ 7. Segurança e Boas Práticas
- Use
prepare()
ebind_param()
para evitar SQL Injection - Valide se campos estão vazios antes de gravar
- Use
htmlspecialchars()
ao exibir dados do usuário - Verifique se o
id
existe antes de excluir
📱 8. Testar no Android
Acode: salve os arquivos e use Palapa Web Server ou PHP embutido
Termux: instale MariaDB, crie banco, copie os arquivos e use:
php -S localhost:8000
Acesse via navegador em: http://localhost:8000/painel/
✅ Conclusão da Parte 6
Agora você tem um painel funcional com:
- Cadastro de produtos
- Busca por nome
- Edição com formulário
- Exclusão com segurança
- Validação e proteção
👉 Na Parte 7, vamos aprender a:
- Enviar arquivos (upload de imagens)
- Exibir imagens em listagens
- Validar tipo/tamanho
- Criar galeria com PHP no Android
Comente se tiver dúvida.