Aprender PHP do Zero - Parte 6

📘 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 e DELETE 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() e bind_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.

Enviar um comentário