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.