database.php
Código PHP:
<?php
private static $db_host = 'localhost';
private static $db_user = 'root';
private static $db_pass = '';
protected $db_name = 'database';
protected $query;
protected $rows = array();
private $conn;
# (...)
abstract class DBAbstractModel {
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);
}
}
?>
Código PHP:
<?php
require_once('mvc/core/database.php');
class Usuario extends DBAbstractModel {
public $nick;
public $permiso;
public $producto;
private $clave;
public function get($user_nick='',$user_clave='') {
if($user_nick != '') {
$this->query = "
SELECT nick, permiso
FROM usuarios
WHERE nick = '$user_nick' and clave = '$user_clave'
";
$this->get_results_from_query();
}
if(count($this->rows) == 1) {
foreach ($this->rows[0] as $propiedad=>$valor) {
$this->$propiedad = $valor;
}
}
}
# (...)
}
?>
Código PHP:
<?php
require_once('constantes.php');
require_once('modelo.php');
require_once('vista.php');
function handler() {
# (...)
if (isset($_POST['login'])) {
if (!empty($_POST['nick']) && !empty($_POST['clave']) ) {
$usuario_data = helper();
$usuario = set_obj();
$usuario->get($usuario_data['nick'], $usuario_data['clave']);
$data = array(
'nick'=>$usuario->nick,
'permiso'=>$usuario->permiso,
);
echo $data['producto'];
} else {
# (...)
}
} else {
# (...)
}
}
# (...)
function set_obj()
{
$obj = new Usuario();
return $obj;
}
?>
Pero ahora estoy tratando de traer varios registros
modelo.php
Código PHP:
<?php
require_once('mvc/core/database.php');
class Usuario extends DBAbstractModel {
public $nick;
public $permiso;
public $producto;
private $clave;
public function get() {
$this->query = "
SELECT producto, precio
FROM productos
";
$this->get_results_from_query();
if(count($this->rows) >= 1) {
foreach ($this->rows as $registro=>$propiedad) {
$this->$registro = $propiedad;
}
}
}
# (...)
}
?>
controlador.php
Código PHP:
<?php
require_once('constantes.php');
require_once('modelo.php');
require_once('vista.php');
function handler() {
# (...)
if ($_GET['p'] == 'consulta') {
$usuario = set_obj();
$usuario->get();
$data = array(
'producto'=>$usuario->producto
'precio'=>$usuario->precio
);
echo (MOSTRAR TODOS LOS REGITROS)
} else {
# (...)
}
}
?>
Creo que no estoy manejando bien el foreach
Código PHP:
<?php
foreach ($this->rows as $registro=>$propiedad) {
$this->$registro = $propiedad;
}
?>