Código:
y luego esteabstract class DBAbstractModel {
private static $db_host = 'localhost';
private static $db_user = 'user';
private static $db_pass = 'pass';
protected $db_name = 'db';
protected $query;
protected $rows = array();
private $conn;
public $mensaje = 'Hecho';
abstract protected function traer();
private function open_connection(){
$this -> conn = new mysqli(self::$db_host, self::$db_user, self::$db_pass, $this -> db_name);
}
private function close_connection() {
$this->conn->close();
}
protected function execute_single_query() {
$this->open_connection();
$this->conn->query($this->query);
$this->close_connection();
}
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();
}
}
Código:
require_once('../core/db_abstract_model.php');
public function get($user_email='') {
if($user_email != '') {
$this->query = "
SELECT id, nombre, apellido, email, clave
FROM usuarios
WHERE email = '$user_email'
";
$this->get_results_from_query();
}
if(count($this->rows) == 1) {
foreach ($this->rows[0] as $propiedad=>$valor) {
$this->$propiedad = $valor;
}
$this->mensaje = 'Usuario encontrado';
} else {
$this->mensaje = 'Usuario no encontrado';
}
}
y para imprimir:
$usuario1 = new Usuario();
$usuario1->get('[email protected]');
print $usuario1->nombre
Hasta aqui todo entendido, pero no entiendo como hacer cuando es mas de un resultado; por ejemplo si quito el where, y listo todos los resultados me marca error al momento de querer imprimirlos, como se aria en este caso?
cuál es tu error?
yo creo que desde ahí vas mal ya que las propiedades se sobreescriben y siempre te va a dar el último usuario. Esto no le encuentro sentido:

