Ver Mensaje Individual
  #11 (permalink)  
Antiguo 14/02/2014, 21:54
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema al realizar consulta mysql

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&oacute;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&oacute;n:&nbsp;<?= $ext->nombre ?></title>
    </head>
    <body>
        <h1>Extensi&oacute;n:&nbsp;<?= $ext->nombre ?>&nbsp;|&nbsp;Software:&nbsp;<?= $ext->software ?></h1>
        <ul>
            <li>
                <h2>Definici&oacute;n</h2>
                <p><?= $ext->definicion ?></p>
            </li>
            <li>
                <h2>Caracter&iacute;sticas</h2>
                <p><?= $ext->caracteristicas ?></p>
            </li>
            <li>
                <h2>Historia</h2>
                <p><?= $ext->historia ?></p>
            </li>
        </ul>
    </body>
</html>
Espero te sirva. Saludos.