Las órdenes embebidas son fragmentos de código insertados dentro de otro lenguaje o entorno. Se utilizan para ampliar la funcionalidad, optimizar procesos o integrar componentes.
Objetivo: Crear una aplicación web que muestre productos desde una base de datos usando SQL embebido en PHP.
productos
(id, nombre, precio, stock).CREATE DATABASE tienda;
USE tienda;
CREATE TABLE productos (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
precio DECIMAL(10,2) NOT NULL,
stock INT DEFAULT 0
);
INSERT INTO productos (nombre, precio, stock) VALUES
('Laptop', 899.99, 15),
('Teléfono', 499.99, 30),
('Tablet', 299.99, 20);
<!DOCTYPE html>
<html>
<head>
<title>Catálogo de Productos</title>
<style>
table { border-collapse: collapse; width: 80%; margin: 20px auto; }
th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
th { background-color: #f2f2f2; }
</style>
</head>
<body>
<h1>Catálogo de Productos</h1>
<form method="GET">
<label>Filtrar por precio máximo:</label>
<input type="number" name="max_price" step="0.01">
<button type="submit">Filtrar</button>
</form>
<?php
$conn = new mysqli('localhost', 'usuario', 'contraseña', 'tienda');
if ($conn->connect_error) {
die("Conexión fallida: " . $conn->connect_error);
}
$sql = "SELECT id, nombre, precio, stock FROM productos";
$max_price = filter_input(INPUT_GET, 'max_price', FILTER_VALIDATE_FLOAT);
if ($max_price !== false && $max_price !== null) {
$sql .= " WHERE precio <= " . floatval($max_price);
}
$sql .= " ORDER BY nombre";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table><tr><th>ID</th><th>Nombre</th><th>Precio</th><th>Stock</th></tr>";
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row["id"]."</td><td>".$row["nombre"]."</td><td>".
$row["precio"]."</td><td>".$row["stock"]."</td></tr>";
}
echo "</table>";
} else {
echo "No se encontraron productos";
}
$conn->close();
?>
</body>
</html>