4. {
$vista = file_get_contents('../Vista/Mensaje.php');
$usuario = new UsuarioModel();
$usuario->delete($_POST['id']);
$valor = $usuario->mensaje;
$vista = str_replace('{Mensaje}', $valor, $vista);
print($vista);
}
}
function DatosUsuario()
{
$user_data = array();
if($_POST)
{
if(array_key_exists('id', $_POST)) {
$user_data['id'] = $_POST['id'];
}
if(array_key_exists('nombre', $_POST)) {
$user_data['nombre'] = $_POST['nombre'];
}
if(array_key_exists('apellido', $_POST)) {
$user_data['apellido'] = $_POST['apellido'];
}
if(array_key_exists('email', $_POST)) {
$user_data['email'] = $_POST['email'];
}
if(array_key_exists('clave', $_POST)) {
$user_data['clave'] = $_POST['clave'];
}
} else if($_GET) {
if(array_key_exists('email', $_GET)) {
$user_data = $_GET['email'];
}
}
return $user_data;
}
?>
Modelo
DataBase.php
<?php
abstract class DataBase {
private static $db_host = 'localhost';
private static $db_user = 'mvc';
private static $db_pass = 'mvc';
protected $db_name = 'mvc';
protected $query;
protected $rows = array();
private $conn;
public $mensaje = 'Hecho';
# métodos abstractos para ABM de clases que hereden
abstract protected function get();
abstract protected function set();
abstract protected function edit();
abstract protected function delete();
# los siguientes métodos pueden definirse con exactitud y
# no son abstractos
# Conectar a la base de datos
private function open_connection()
{
$this->conn = new mysqli(self::$db_host, self::$db_user,
self::$db_pass, $this->db_name);
}
# Desconectar la base de datos
private function close_connection()
5. {
$this->conn->close();
}
# Ejecutar un query simple del tipo INSERT, DELETE, UPDATE
protected function execute_single_query()
{
if($_POST)
{
$this->open_connection();
$this->conn->query($this->query);
$this->close_connection();
} else {
$this->mensaje = 'Metodo no permitido';
}
}
# Traer resultados de una consulta en un Array
protected function get_results_from_query()
{
$this->open_connection();
$result = $this->conn->query($this->query);
while ($this->rows[] = $result->fetch_assoc());
$result->close();
$this->close_connection();
array_pop($this->rows);
}
}
?>
UsuarioModelo.php
<?php
# Importar modelo de abstracción de base de datos
require_once('DataBase.php');
class UsuarioModel extends DataBase {
############################### PROPIEDADES ################################
public $nombre;
public $apellido;
public $email;
private $clave;
public $id;
public $Usuarios;
# Traer datos de un usuario
public function get($id='')
{
if($id != '')
{
$this->query = "
SELECT id, nombre, apellido, email, clave
FROM usuarios
WHERE id = $id
";
$this->get_results_from_query();
}
if(count($this->rows) == 1)
{
foreach ($this->rows[0] as $propiedad=>$valor)
{
$this->$propiedad = $valor;
}
}
}
public function getByName($nombre='')
{
$this->query = "
SELECT id, nombre, apellido, email, clave
6. FROM usuarios
WHERE nombre LIKE '$nombre%'
";
$this->get_results_from_query();
$this->Usuarios = $this->rows;
}
# Crear un nuevo usuario
public function set($user_data=array())
{
if(array_key_exists('email', $user_data))
{
foreach ($user_data as $campo=>$valor)
{
$$campo = $valor;
}
$this->query = "
INSERT INTO usuarios
(nombre, apellido, email, clave)
VALUES
('$nombre', '$apellido', '$email', '$clave')
";
$this->execute_single_query();
$this->mensaje = 'Usuario agregado exitosamente';
} else {
$this->mensaje = 'No se ha agregado al usuario';
}
}
# Modificar un usuario
public function edit($user_data=array())
{
foreach ($user_data as $campo=>$valor)
{
$$campo = $valor;
}
$this->query = "
UPDATE usuarios
SET nombre='$nombre',
apellido='$apellido',
email='$email',
WHERE id = '$id'
";
$this->execute_single_query();
$this->mensaje = 'Usuario modificado';
}
# Eliminar un usuario
public function delete($id='')
{
$this->query = "
DELETE FROM usuarios
WHERE id = '$id'
";
$this->execute_single_query();
$this->mensaje = 'Usuario eliminado';
}
# Método constructor
function __construct()
{
$this->db_name = 'mvc';
}
# Método destructor del objeto
function __destruct()
{
unset($this);
}
}
?>
7. Creacion de Tabla
CREATE TABLE usuarios (id INT(11) NOT NULL AUTO_INCREMENT, nombre VARCHAR(100), apellido
VARCHAR(100), email VARCHAR(100), clave VARCHAR(25), PRIMARY KEY(id))