<?php /**  * Objet Model  * Permite las interactiones con la base de datos * */ 

class Model{   
 public $table;    
 public $id;     
 private static $base;
 private static $servidor='127.0.0.1';
 private static $bdd='parque_info'; //nombre de la base de datos
 private static $user='root' ;    		
 private static $mdp='' ;	
 
 public function __construct()
 {
		//Conexión a la base de datos
		Model::$base = mysqli_connect(Model::$servidor,Model::$user,Model::$mdp,Model::$bdd); 
 }
 
 public function __destruct(){
	Model::$base = null;
 }

/**      * Permite recuperar varias líneas en la BDD      * @param $data conditiones de recuperación * */    
 public function find($data=array()){   
	$conditions = "1=1";   
	$fields = "*";           
	$limit = "";             
	$order = "id DESC"; 
	extract($data);    // Importa las variables en la tabla de símbolos.        
	if(isset($data["limit"])){ 
		$limit = "LIMIT ".$data["limit"]; 
	}          
	$sql = "SELECT ".$fields." FROM ".$this->table." WHERE ".$conditions." ORDER BY ".$order." ".$limit;           
	$req = mysqli_query(Model::$base, $sql) or die(mysqli_error(Model::$base)."<br/> => ".$sql);           
	$d = array(); 
	while($data = mysqli_fetch_assoc($req)){ 
		$d[] = $data;             
	}
	return $d;     
} 

 /**      * Permite hacer una consulta compleja * @param $sql Consulta a realizar * */        
 public function query($sql){ 
  $req = mysqli_query(Model::$base, $sql) or die(mysqli_error(Model::$base)."<br/> => ".$sql);             
  $d = array();            
  while($data = mysqli_fetch_assoc($req)){               
	$d[] = $data;             
  } 
  return $d;        
 } 
 
  /**      * Permet cambiar un modelo      * @param $name Nombre del modelo a cambiar * */     
  static function load($name){        
	require("$name.php");        
	return new $name();     
  }
} ?>
 