Concepto: Las órdenes embebidas (embedded commands) son instrucciones o fragmentos de código de un lenguaje que se insertan dentro de otro lenguaje o entorno. Son fundamentales para:
Crear una aplicación web que muestre productos de una base de datos usando SQL embebido en PHP.
<?php
// Conexión a la base de datos
$conn = new mysqli('localhost', 'usuario', 'contraseña', 'tienda');
if ($conn->connect_error) {
die("Conexión fallida: " . $conn->connect_error);
}
// SQL embebido con condición dinámica
$sql = "SELECT id, nombre, precio, stock FROM productos";
if (isset($_GET['max_price']) && is_numeric($_GET['max_price'])) {
$max_price = $conn->real_escape_string($_GET['max_price']);
$sql .= " WHERE precio <= $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();
?>
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);
// Al inicio del script PHP
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
die('Método no permitido');
}
// Validación adicional para el precio
$max_price = filter_input(INPUT_GET, 'max_price', FILTER_VALIDATE_FLOAT);
if ($max_price !== false && $max_price !== null) {
$sql .= " WHERE precio <= " . floatval($max_price);
}