Ejercicio 6 PHP

Curso PHP – Ejercicio 6 (CRUD con PDO y MySQL)

๐Ÿ› ️ Ejercicio 6: CRUD con PDO y MySQL

๐Ÿ“Œ Planteamiento:

Conecta PHP a una base de datos MySQL y:

  • ✅ Crea una tabla llamada productos con columnas id, nombre y precio.
  • ✅ Inserta un producto desde PHP.
  • ✅ Muestra todos los productos en una tabla HTML.
  • ✅ Permite eliminar un producto por su ID.
๐Ÿ‘‰ Usa **PDO** para la conexiรณn y consultas seguras con prepare().

✅ Modelo de soluciรณn:

<?php
// ๐Ÿ”Œ Conexiรณn a la base de datos (cambia credenciales segรบn tu entorno)
$dsn = "mysql:host=localhost;dbname=curso_php;charset=utf8";
$usuario = "root";
$contrasena = "";

try {
    $pdo = new PDO($dsn, $usuario, $contrasena);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("❌ Error de conexiรณn: " . $e->getMessage());
}

// ๐Ÿ“Œ Crear tabla si no existe
$sql = "CREATE TABLE IF NOT EXISTS productos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(100) NOT NULL,
    precio DECIMAL(10,2) NOT NULL
)";
$pdo->exec($sql);

// ๐Ÿ“ฅ Insertar producto
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['nombre']) && isset($_POST['precio'])) {
    $stmt = $pdo->prepare("INSERT INTO productos (nombre, precio) VALUES (?, ?)");
    $stmt->execute([$_POST['nombre'], $_POST['precio']]);
    echo "✅ Producto agregado.";
}

// ๐Ÿ—‘️ Eliminar producto
if (isset($_GET['eliminar'])) {
    $id = intval($_GET['eliminar']);
    $stmt = $pdo->prepare("DELETE FROM productos WHERE id = ?");
    $stmt->execute([$id]);
    echo "๐Ÿ—‘️ Producto eliminado.";
}

// ๐Ÿ“„ Listar productos
$stmt = $pdo->query("SELECT * FROM productos");
$productos = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>

<h3>Agregar producto</h3>
<form method="post">
  <label>Nombre:</label><br>
  <input type="text" name="nombre" required><br><br>
  <label>Precio:</label><br>
  <input type="number" step="0.01" name="precio" required><br><br>
  <button type="submit">Agregar</button>
</form>

<h3>Listado de productos</h3>
<table border="1" cellpadding="5">
  <tr><th>ID</th><th>Nombre</th><th>Precio</th><th>Acciรณn</th></tr>
  <?php foreach ($productos as $p): ?>
    <tr>
      <td><?php echo $p['id']; ?></td>
      <td><?php echo $p['nombre']; ?></td>
      <td><?php echo $p['precio']; ?></td>
      <td><a href="?eliminar=<?php echo $p['id']; ?>" onclick="return confirm('¿Eliminar producto?');">Eliminar</a></td>
    </tr>
  <?php endforeach; ?>
</table>
    

๐ŸŽฏ Claves de este ejercicio:

  • ๐Ÿ“ Conexiรณn segura a MySQL usando PDO.
  • ๐Ÿ“ Uso de prepare() y execute() para evitar SQL Injection.
  • ๐Ÿ“ Creaciรณn dinรกmica de tablas y CRUD bรกsico.
  • ๐Ÿ“ Introducciรณn a HTML y PHP trabajando juntos.

No hay comentarios:

Publicar un comentario

Polรญticas de Privacidad