Tengo 3 clases
Conexion.class.php
Código PHP:
<?php
class Conexion
{
private $cn;
private $rs;
private $servidor;
private $usuario;
private $password;
private $bd;
public function __construct($servidor = "localhost", $usuario = "root", $password =
"220785", $bd = "sce")
{
$this->servidor = $servidor;
$this->usuario = $usuario;
$this->password = $password;
$this->bd = $bd;
$this->cn = new mysqli($servidor, $usuario, $password, $bd);
}
public function dbExecute($query)
{
$this->rs = $this->cn->query($query);
return $this->rs;
}
public function getInsertedId()
{
return $this->cn->insert_id;
}
public function afectados()
{
return $this->cn->affected_rows;
}
protected function clean($value)
{
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
$value = mysql_real_escape_string(htmlspecialchars($value));
return $value;
}
public function __destruct()
{
$this->cn;
}
}
?>
Edad.class.php
Código PHP:
<?php
class Edad
{
private $fecha_nacimiento;
public function __construct($fecha_nacimiento)
{
$this->fecha_nacimiento = $fecha_nacimiento;
}
private function dia() //Día de la fecha de nacimiento
{
$fecha = explode("-", $this->fecha_nacimiento);
$dia = $fecha[2];
return $dia;
}
private function mes() //Mes de la fecha de nacimiento
{
$fecha = explode("-", $this->fecha_nacimiento);
$mes = $fecha[1];
return $mes;
}
private function anio() //Año de la fecha de nacimiendo
{
$fecha = explode("-", $this->fecha_nacimiento);
$anio = $fecha[0];
return $anio;
}
private function getmes() //Mes actual
{
$hoy = explode("-", date("Y-m-d"));
$mes = $hoy[1];
return $mes;
}
private function getanio() //Año actual
{
$hoy = explode("-", date("Y-m-d"));
$anio = $hoy[0];
return $anio;
}
private function getdia() //Día actual
{
$hoy = explode("-", date("Y-m-d"));
$dia = $hoy[2];
return $dia;
}
private function calculo() //Calculo de la edad actual
{
$cumplidos = $this->getanio() - $this->anio();
return $cumplidos;
}
public function calcular_edad()
//Calculo de la edad con la codicion de que si no ha llegado a la fecha exacta de nacimiento no imprime la edad que en el año actual deberia cumplir
{
$edad = $this->calculo();
if ($this->getmes() >= $this->mes() && $this->getdia() >= $this->dia()) { //Verifica que si el mes y dia son iguales a los de su nacimiento
return $edad;
} else {
$edad = $edad - 1;
return $edad;
}
}
public function __destruct()
{
$this->fecha_nacimiento;
}
}
?>
Alumno.class.php
Código PHP:
<?php
class Alumno extends Conexion
{
private $id_alumno;
private $nombre;
private $app;
private $apm;
private $edad;
private $sexo;
private $fecha_nacimiento;
private $estado_nacimiento;
private $municipio_nacimiento;
private $curp;
private $colonia;
private $calle;
private $numero_casa;
private $cp;
private $estado_residencia;
private $municipio_residencia;
private $telefono;
private $status;
private $fecha_ingreso;
private $imagen;
private $id_tutor;
private $id_grupo;
private $where;
public function __construct()
{
parent::__construct();
parent::__destruct();
}
public function agregar($id_alumno, $nombre, $app, $apm, $edad, $sexo, $fecha_nacimiento,
$estado_nacimiento, $municipio_nacimiento, $curp, $colonia, $calle, $numero_casa,
$cp, $estado_residencia, $municipio_residencia, $telefono, $status, $fecha_ingreso,
$imagen, $id_tutor, $id_grupo)
{
$this->id_alumno = $id_alumno;
$this->nombre = $nombre;
$this->app = $app;
$this->apm = $apm;
$this->edad = $edad;
$this->sexo = $sexo;
$this->fecha_nacimiento = $fecha_nacimiento;
$this->estado_nacimiento = $estado_nacimiento;
$this->municipio_nacimiento = $municipio_nacimiento;
$this->curp = $curp;
$this->colonia = $colonia;
$this->calle = $calle;
$this->numero_casa = $numero_casa;
$this->cp = $cp;
$this->estado_residencia = $estado_residencia;
$this->municipio_residencia = $municipio_residencia;
$this->telefono = $telefono;
$this->status = $status;
$this->fecha_ingreso = $fecha_ingreso;
$this->imagen = $imagen;
$this->id_tutor = $id_tutor;
$this->id_grupo = $id_grupo;
$query = "INSERT INTO alumnos (id_alumno,nombre,app,apm,edad,sexo,fecha_nacimiento,estado_nacimiento,municipio_nacimiento,curp,colonia,calle,numero_casa,cp,estado_residencia,municipio_residencia,telefono,status,fecha_ingreso,imagen,id_tutor,id_grupo) VALUES ('$id_alumno','$nombre','$app','$apm','$edad','$sexo','$fecha_nacimiento','$estado_nacimiento','$municipio_nacimiento','$curp','$colonia','$calle','$numero_casa','$cp','$estado_residencia','$municipio_residencia','$telefono','$status','$fecha_ingreso','$imagen','$id_tutor','$id_grupo')";
return $this->dbExecute($query);
}
public function consultar($where)
{
$this->where = $where;
$query = "SELECT * FROM alumnos $where";
return $this->dbExecute($query);
}
public function modificar($id_alumno, $nombre, $app, $apm, $edad, $sexo, $fecha_nacimiento,
$estado_nacimiento, $municipio_nacimiento, $curp, $colonia, $calle, $numero_casa,
$cp, $estado_residencia, $municipio_residencia, $telefono, $status, $fecha_ingreso,
$imagen, $id_tutor, $id_grupo)
{
$this->id_alumno = $id_alumno;
$this->nombre = $nombre;
$this->app = $app;
$this->apm = $apm;
$this->edad = $edad;
$this->sexo = $sexo;
$this->fecha_nacimiento = $fecha_nacimiento;
$this->estado_nacimiento = $estado_nacimiento;
$this->municipio_nacimiento = $municipio_nacimiento;
$this->curp = $curp;
$this->colonia = $colonia;
$this->calle = $calle;
$this->numero_casa = $numero_casa;
$this->cp = $cp;
$this->estado_residencia = $estado_residencia;
$this->municipio_residencia = $municipio_residencia;
$this->telefono = $telefono;
$this->status = $status;
$this->fecha_ingreso = $fecha_ingreso;
$this->imagen = $imagen;
$this->id_tutor = $id_tutor;
$this->id_grupo = $id_grupo;
$query = "UPDATE alumnos SET nombre='$nombre',app='$app',apm='$apm',edad='$edad',sexo='$sexo',fecha_nacimiento='$fecha_nacimiento',curp='$curp',colonia='$colonia',calle='$calle',numero_casa='$numero_casa',cp='$cp',estado_residencia='$estado_residencia',municipio_residencia='$municipio_residencia',telefono='$telefono',status='$status',fecha_ingreso='$fecha_ingreso',imagen='$imagen',id_tutor='$id_tutor',id_grupo='$id_grupo' WHERE id_alumno='$id_alumno'";
return $this->dbExecute($query);
}
public function eliminar($id_alumno)
{
$this->id_alumno = $id_alumno;
$query = "DELETE FROM alumnos WHERE id_alumno='$id_alumno'";
return $this->dbExecute($query);
}
public function total($where)
{
$this->where = $where;
$query = "SELECT COUNT(id_alumno) AS id_alumno FROM alumnos $where";
return $this->dbExecute($query);
}
}
?>
El problema esta en que necesito hereda las dos clases conexion y edad a la clase alumno pk necesito calcular la edad del alumno mediante su fecha de nacimiento, pero no se como puedo implementar las dos clases en la otra, habia pensado heredar edad a conexion y despues conexion a alumnos, pero el detalle esta en que no siempre voy a a utilizar los metodos de edad, sino en algunas clases por ejemplo solo en la de alumno, alguien puede ayudarme