<?php

class Conexion  // se declara una clase para hacer la conexion con la base de datos
{
	var $con;
	function Conexion()
		   	 
	{
		// se definen los datos del servidor de base de datos 
		$conection['server']="localhost";  //host
		$conection['user']="root";         //  usuario
		$conection['pass']="buttons";		//password
		$conection['base']="marbella_egocar";			//base de datos
		
		
		// crea la conexion pasandole el servidor , usuario y clave
		$conect= mysql_pconnect($conection['server'],$conection['user'],$conection['pass']);


			
		if ($conect) // si la conexion fue exitosa , selecciona la base
		{
			mysql_select_db($conection['base']);			
			$this->con=$conect;
		}
	}
	function getConexion() // devuelve la conexion
	{
		return $this->con;
	}
	function Close()  // cierra la conexion
	{
		mysql_close($this->con);
	}	

}


class sQuery   // se declara una clase para poder ejecutar las consultas, esta clase llama a la clase anterior
{

	var $pconeccion;
	var $pconsulta;
	var $resultados;
	function sQuery()  // constructor, solo crea una conexion usando la clase "Conexion"
	{
		$this->pconeccion= new Conexion();
	}
	function executeQuery($cons)  // metodo que ejecuta una consulta y la guarda en el atributo $pconsulta
	{
		$this->pconsulta= mysql_query($cons,$this->pconeccion->getConexion());
		return $this->pconsulta;
	}	
	function getResults()   // retorna la consulta en forma de result.
	{return $this->pconsulta;}	
	
	function Close()		// cierra la conexion
	{$this->pconeccion->Close();}	
	
	function Clean() // libera la consulta
	{mysql_free_result($this->pconsulta);}
	
	function getResultados() // debuelve la cantidad de registros encontrados
	{return mysql_affected_rows($this->pconeccion->getConexion()) ;}
	
	function getAffect() // devuelve las cantidad de filas afectadas
	{return mysql_affected_rows($this->pconeccion->getConexion()) ;}
}




class Cliente
{
	var $nombrecliente;     //se declaran los atributos de la clase, que son los atributos del cliente
	var $apellidocliente;
	var $direccion;
	var $telefono;
	var $id_cliente;
	function Cliente($nro=0) 
	{
		if ($nro!=0)
		{
			$obj_cliente=new sQuery();
			$result=$obj_cliente->executeQuery("select * from clientes where id_cliente = $nro");  
			$row=mysql_fetch_array($result);
			$this->id_cliente=$row['id_cliente'];
			$this->nombrecliente=$row['nombrecliente'];
			$this->apellidocliente=$row['apellidocliente'];
			$this->direccion=$row['direccion'];
			$this->telefono=$row['telefono'];
			
		}
	}
	function getClientes() // este metodo podria no estar en esta clase, se incluye para simplificar el codigo, lo que hace es traer todos los clientes 
		{
			$obj_cliente=new sQuery();
			$result=$obj_cliente->executeQuery("select * from clientes ORDER BY id_cliente DESC");
			return $result; // retorna todos los alumnos
		}
		
		// metodos que devuelven valores
	function getID()
	 { return $this->id_cliente;}
	function getNombreCliente()
	 { return $this->nombrecliente;}
	function getApellidoCliente()
	 { return $this->apellidocliente;}
	function getDireccion()
         { return $this->direccion;}
	function getTelefono()
         { return $this->telefono;}
	
	 
		// metodos que setean los valores
	function setNombreCliente($val)
	 { $this->nombrecliente=$val;}
 	function setApellidoCliente($val)
         {  $this->apellidocliente=$val;}
    function setDireccion($val)
         {  $this->direccion=$val;}
	function setTelefono($val)
         {  $this->telefono=$val;}
		

	function updateCliente()	// actualiza el cliente cargado en los atributos
	{
			$obj_cliente=new sQuery();
			$query="UPDATE clientes set nombrecliente='$this->nombrecliente', apellidocliente='$this->apellidocliente', direccion='$this->direccion', telefono='$this->telefono' WHERE id_cliente = $this->id_cliente";
			$obj_cliente->executeQuery($query); // ejecuta la consulta para traer al alumno
			return $query .'<br/>Registros afectados: '.$obj_cliente->getAffect(); // retorna todos los registros afectados
	
	}
	function insertCliente()	// inserta el alumno cargado en los atributos
	{
			$obj_alumno=new sQuery();
			$query="INSERT INTO clientes(
			nombrecliente, 
			apellidocliente,
			direccion,
			telefono
			)
			VALUES(
			'$this->nombrecliente',
			'$this->apellidocliente',
			'$this->direccion',
			'$this->telefono'	
			)";
			
			$obj_cliente->executeQuery($query); // ejecuta la consulta para traer al alumno
			return $query .'<br/>Registros afectados: '.$obj_cliente->getAffect(); // retorna todos los registros afectados

			
			//$obj_alumno=new sQuery();

		}	
		
	function deleteCliente($val)	// elimina el alumno
	{
			$obj_cliente=new sQuery();
			$query="DELETE FROM clientes WHERE id_cliente=$val";
			$obj_cliente->executeQuery($query); // ejecuta la consulta para  borrar el alumno
			return $query .'<br/>Registros afectados: '.$obj_cliente->getAffect(); // retorna todos los registros afectados
	
	}	
	
	
	
}


?>