certmundo.
es‑mx

7 min de lectura

¿Cómo crear tu primera página dinámica con PHP?

Una página dinámica con PHP genera contenido diferente según los datos que recibe, a diferencia de una página HTML estática que siempre muestra lo mismo.

El problema de las páginas estáticas

Imagina que trabajas en el área de tecnología de Liverpool. Cada semana tienes que actualizar manualmente el precio de miles de productos en el sitio web. Cambias el HTML a mano, guardas el archivo, lo subes al servidor. Es agotador y lento.

PHP resuelve ese problema. En lugar de escribir el precio directamente en el HTML, el código PHP lo lee desde una base de datos y lo muestra automáticamente. Tú ya no tocas el HTML cada semana.

Eso es exactamente lo que vas a aprender en esta lección: escribir código PHP que genere contenido real en el navegador.

El Sistema PHP-HTML: cómo conviven los dos lenguajes

PHP y HTML no se pelean. Viven en el mismo archivo .php y trabajan juntos con una regla muy clara:

  • Todo lo que está dentro de <?php ... ?> lo ejecuta el servidor.
  • Todo lo que está fuera de esas etiquetas es HTML puro.

Este modelo se llama PHP embebido en HTML. Es la base de cualquier página dinámica.

El servidor de Apache lee tu archivo .php, ejecuta el código PHP, y entrega al navegador HTML puro. El usuario nunca ve tu código PHP, solo ve el resultado.

Tu primer archivo PHP

Abre tu editor de texto (puede ser VS Code o incluso el Bloc de notas). Crea un archivo llamado bienvenida.php dentro de C:\xampp\htdocs\mi_proyecto\.

Escribe esto:

<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8">
  <title>Mi primera página PHP</title>
</head>
<body>

  <?php
    $nombre = "Carlos";
    $empresa = "Bimbo";
    echo "<h1>Bienvenido, " . $nombre . "</h1>";
    echo "<p>Trabajas en " . $empresa . ".</p>";
  ?>

</body>
</html>

Guarda el archivo. Abre tu navegador y escribe http://localhost/mi_proyecto/bienvenida.php.

Verás en pantalla:

Bienvenido, Carlos
Trabajas en Bimbo.

Felicidades. Acabas de crear tu primera página dinámica.

Variables en PHP: los contenedores de información

Una variable en PHP siempre empieza con el símbolo $. No necesitas declarar su tipo; PHP lo detecta solo.

<?php
  $producto = "Pan Bimbo";
  $precio = 18500;
  $disponible = true;
?>

En este ejemplo, $producto guarda texto, $precio guarda un número y $disponible guarda un valor verdadero o falso.

Puedes usar echo para mostrar el valor de cualquier variable en el navegador:

<?php
  $salario = 18500;
  echo "<p>Tu salario mensual es: $" . number_format($salario) . "</p>";
?>

Eso mostraría en pantalla:

Tu salario mensual es: $18,500

Fíjate en number_format(). Esa función agrega la coma de miles automáticamente. Úsala siempre que muestres cantidades en pesos.

Condicionales: cuando PHP toma decisiones

Un condicional le dice a PHP qué mostrar según una condición. La estructura básica es if / else.

Ejemplo práctico: una tienda en línea como Mercado Libre necesita mostrar si un producto está disponible o agotado.

<?php
  $stock = 0;

  if ($stock > 0) {
    echo "<p style='color:green;'>Producto disponible.</p>";
  } else {
    echo "<p style='color:red;'>Producto agotado.</p>";
  }
?>

Como $stock es 0, el navegador mostrará: Producto agotado en rojo.

También puedes usar elseif para manejar más de dos opciones:

<?php
  $nivel_inventario = 5;

  if ($nivel_inventario == 0) {
    echo "<p>Sin stock.</p>";
  } elseif ($nivel_inventario <= 10) {
    echo "<p>Pocas unidades disponibles.</p>";
  } else {
    echo "<p>Stock suficiente.</p>";
  }
?>

Con $nivel_inventario = 5, el resultado sería: Pocas unidades disponibles.

Este tipo de lógica aparece en casi todas las páginas reales. Lo usarás constantemente.

Bucles: cuando PHP repite tareas automáticamente

Un bucle ejecuta el mismo bloque de código varias veces. En PHP los más usados son for y foreach.

El bucle for

Usa for cuando sabes exactamente cuántas veces necesitas repetir algo.

<?php
  echo "<ul>";
  for ($i = 1; $i <= 5; $i++) {
    echo "<li>Producto número " . $i . "</li>";
  }
  echo "</ul>";
?>

Eso genera una lista HTML con 5 elementos automáticamente. Sin copiar y pegar.

El bucle foreach con arreglos

Un arreglo (array) guarda múltiples valores en una sola variable. foreach recorre cada valor uno por uno.

<?php
  $sucursales = ["CDMX", "Monterrey", "Guadalajara", "Puebla"];

  echo "<h2>Sucursales FEMSA</h2>";
  echo "<ul>";
  foreach ($sucursales as $ciudad) {
    echo "<li>" . $ciudad . "</li>";
  }
  echo "</ul>";
?>

Esto genera una lista con las cuatro ciudades. Si agregas una ciudad al arreglo, aparece automáticamente en la página. No tocas el HTML.

Combinando todo: una página más completa

Ahora combina variables, condicionales y bucles en un solo ejemplo. Simula una sección de catálogo de productos:

<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8">
  <title>Catálogo</title>
</head>
<body>

<?php
  $productos = [
    ["nombre" => "Refresco Coca-Cola 600ml", "precio" => 18, "stock" => 120],
    ["nombre" => "Pan de caja Bimbo",        "precio" => 45, "stock" => 0],
    ["nombre" => "Leche Lala 1L",             "precio" => 28, "stock" => 35],
  ];

  echo "<h1>Catálogo de productos</h1>";
  echo "<table border='1' cellpadding='8'>";
  echo "<tr><th>Producto</th><th>Precio</th><th>Disponibilidad</th></tr>";

  foreach ($productos as $p) {
    $estado = ($p["stock"] > 0) ? "Disponible" : "Agotado";
    $color  = ($p["stock"] > 0) ? "green" : "red";

    echo "<tr>";
    echo "<td>" . $p["nombre"] . "</td>";
    echo "<td>$" . number_format($p["precio"]) . "</td>";
    echo "<td style='color:" . $color . ";'>" . $estado . "</td>";
    echo "</tr>";
  }

  echo "</table>";
?>

</body>
</html>

Este código genera una tabla HTML completa con tres productos. El color cambia automáticamente según el stock. Todo con menos de 30 líneas de PHP.

Errores comunes al escribir tu primer script PHP

Estos son los errores que comete casi todo el mundo al empezar:

1. Olvidar el punto y coma al final de cada instrucción. PHP es estricto con eso. echo "Hola" sin punto y coma causa un error de sintaxis.

2. No abrir el archivo desde localhost. Si abres el archivo haciendo doble clic en el explorador de Windows, el navegador lo trata como HTML. Siempre usa http://localhost/tu_proyecto/archivo.php.

3. Confundir = con ==. Un solo = asigna un valor. Dos == comparan valores. Escribir if ($stock = 0) en lugar de if ($stock == 0) siempre resultará verdadero y tu lógica fallará.

4. Olvidar cerrar las etiquetas PHP. Cada <?php debe tener su ?> correspondiente, o el servidor devolverá un error en blanco.

5. Mezclar comillas simples y dobles sin control. En PHP, las comillas dobles interpretan variables: echo "Hola $nombre" funciona. Las simples no: echo 'Hola $nombre' imprime literalmente $nombre. Elige una convención y mantenla.

Cómo aplicar esto en tu próximo proyecto

Antes de conectar PHP a una base de datos MySQL (que verás en lecciones posteriores), practica con datos "hardcodeados" como en los ejemplos anteriores. Eso te permite dominar la sintaxis sin distracciones.

Una vez que el código funciona con datos fijos, reemplazar esos datos por consultas a MySQL es sencillo. El flujo PHP-HTML que ya aprendiste no cambia.

PHP no reemplaza el HTML; lo potencia: tú escribes la lógica una vez y el servidor genera el contenido las veces que sea necesario.

Puntos clave

  • PHP se embebe dentro del HTML usando las etiquetas `<?php ... ?>`. El servidor ejecuta el código PHP y entrega HTML puro al navegador.
  • Las variables en PHP siempre empiezan con `$` y no requieren declarar su tipo. Usa `number_format()` para mostrar cantidades en pesos con formato correcto, por ejemplo `$18,500`.
  • Los condicionales `if / elseif / else` permiten que tu página muestre contenido diferente según los datos, como mostrar 'Disponible' o 'Agotado' según el stock de un producto.
  • Los bucles `for` y `foreach` generan HTML repetitivo de forma automática. Un arreglo con sucursales de FEMSA puede convertirse en una lista HTML completa con solo cinco líneas de código.
  • Los errores más comunes son: olvidar el punto y coma, abrir el archivo sin usar `http://localhost`, y confundir el operador de asignación `=` con el de comparación `==`.

Comparte esta lección:

¿Cómo crear tu primera página dinámica con PHP? | PHP y MySQL: Desarrollo Web con Base de Datos | Certmundo