Ver Mensaje Individual
  #7 (permalink)  
Antiguo 24/11/2008, 06:53
Avatar de lcervantes
lcervantes
 
Fecha de Ingreso: abril-2002
Mensajes: 137
Antigüedad: 24 años, 6 meses
Puntos: 0
Mensaje Respuesta: Proyecto para clase

Hola
Yo creo que tendrías que cambiar algunas cosas.
- Por un lado agregar una propiedad que sea conexion SQL y en el constructor agregarla para que tengas acceso a la clase SQL. Efectivamente agregar el include al inicio de la clase para que puedas acceder a la clase SQL.

- Quitar los __ a los metodos personales y dejar solo el __ al construct y al __toString

- Todo esto mismo en el resto de las clases.

- Y lo de final que le agregas a las clases pensaría un poco en lo que dice enriqueplace
Cita:
Según la sintaxis, esas clases no podrían ser heredadas, habría que ver el sentido del diseño y el contexto para hacer esto.
Es decir no las podrás heredar...

OJO: Con esto no quiero decir que sea la manera mas correcta. Pero es como yo lo haría.. Os parece bien... Tambien acepto comentarios...
Por otro lado me he limitado a cambiar directamente el codigo, y no a probarlo.

Código PHP:
<?php
   
include ('SQL.class.php');
    final class 
Vuelo {
        private 
$unaColReservas;
        private 
$mNumero;
        private 
$mFecha;
        private 
$mHora;
        private 
$mAsientos;
        private 
$mDestino;

        private 
$MYSQL;
        
        public function 
getAtributo($atributo)
        {
            return 
$this->$atributo;
        }
        
        public function 
__construct($numero, $fecha, $hora, $asientos, $destino)
        {
            
$this->mNumero = $numero;
            
$this->mFecha = $fecha;
            
$this->mHora = $hora;
            
$this->mAsientos = $asientos;
            
$this->mDestino = $destino;
          
            
$this->MYSQL = new MYSQL()

            if (
$this->tieneReservas())
                
$result = $this->MYSQL->sql_query("select * from reservas WHERE idvuelo='". $this->mNumero . "' ORDER by apellido ASC");
                while (
$row = $this->MYSQL ->sql_fetchrow($result))
                {
                    
$pasajero = new Pasajero($row[documento], $row[nombre], $row[apellido]);
                    
$reserva = new Reserva($row[idvuelo], $row[asiento], $row[fila], $pasajero);
                    
$this->unaColReservas[] = $reserva;
                }
        }
        
        public function 
agregarDB()
        {
            
$retorno = false;
            
            
$result = $this->MYSQL->sql_query("INSERT INTO `vuelos` (`id`, `fecha`,`hora`,`asientos`,`destino`) VALUES ('". $this->mNumero . "', '". $this->mFecha . "', '" . $this->mHora . "', '". $this->mAsientos . "', '". $this->mDestino . "');");
            if (
$result)
            {
                
$retorno = true;
            }
            
            return 
$retorno;
        }
        
        public function 
borrarDB()
        {
            
$retorno= false;
            if (!
$this->tieneReservas())
            {
                
$result = $this->MYSQL ->sql_query("DELETE FROM `vuelos` WHERE id='". $this->mNumero . "'");
                if (
$result)
                {
                    
$retorno = true;
                }
            }
            else
            {
                die(
"Este vuelo no puede ser borrado porque tiene reservas hechas");
            }
            return 
$retorno;
        }
        
        public function 
modificarDB($fecha, $hora, $destino)
        {
            
$retorno = false;
            
$result = $this->MYSQL ->sql_query("UPDATE `vuelos` SET `fecha` = '$fecha', `hora` = ' $hora', `destino` = '$destino' WHERE id='". $this->mNumero . "'");
            if (
$result)
            {
                
$this->mFecha = $fecha;
                
$this->mHora = $hora;
                
$this->mDestino = $destino;
                
                
$retorno = true;
            }
            return 
$retorno;
        }
        
        public function 
tieneReservas()
        {
            
$result = $this->MYSQL->sql_query("select * from reservas WHERE idvuelo='". $this->mNumero . "'");
            
$retorno = false;
            if (
$this->MYSQL ->sql_numrows($result))
                
$retorno = true;
                
            return 
$retorno;
        }
        
        public function 
__toString()
        {
            return 
"Vuelo n. <b>" . $this->mNumero . "</b> - Fecha: <b>" . $this->mFecha . "</b> - Hora: <b>" . $this->mHora . "</b> - Destino: <b>" . $this->mDestino . "</b>";
        }
    }
?>
Saludos,
__________________
LCervantes
--------------------------------------------
www.nerrots.es