Ver Mensaje Individual
  #7 (permalink)  
Antiguo 24/11/2008, 06:53
Avatar de lcervantes
lcervantes
 
Fecha de Ingreso: abril-2002
Mensajes: 137
Antigüedad: 22 años, 8 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()
        {
            
$retornofalse;
            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