Comprueba esta solución y dime si no es más difícil cometer errores.
extension.php (encapsulamiento de la extensión, __get proporciona acceso a los campos)
Código PHP:
class Extension {
private $db;
private $nombre;
function __construct(mysqli $db, $nombre) {
$this->db = $db;
$this->nombre = $nombre;
}
function __get($field) {
return $this->db->query("SELECT $field FROM extension WHERE nombre = '$this->nombre';")->fetch_assoc()[$field];
}
}
index.php (controlador, el que manda)
Código PHP:
// config
$host = 'localhost';
$user = 'root';
$pwd = null;
$db = 'extensiones';
// comienzo
$extension = filter_input(INPUT_GET, 'extension');
if ($extension) {
include 'extension.php';
$ext = new Extension(new mysqli($host, $user, $pwd, $db), $extension);
include 'plantilla.php';
}
else
echo 'Extensión no recibida.<pre>Ejemplo: index.php?extension=nombre</pre>';
plantilla.php (lo que viene siendo una plantilla)
Código PHP:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="latin1">
<title>Extensión: <?= $ext->nombre ?></title>
</head>
<body>
<h1>Extensión: <?= $ext->nombre ?> | Software: <?= $ext->software ?></h1>
<ul>
<li>
<h2>Definición</h2>
<p><?= $ext->definicion ?></p>
</li>
<li>
<h2>Características</h2>
<p><?= $ext->caracteristicas ?></p>
</li>
<li>
<h2>Historia</h2>
<p><?= $ext->historia ?></p>
</li>
</ul>
</body>
</html>
Espero te sirva. Saludos.