Cita:
Iniciado por eits tienes un gran error, estas intentado compara tipos de datos diferentes
$this->anio_actual es de tipo númerico y dices que va de 1 a 6 y por defecto esta en 0 y 'total' es una cadena de texto, cuando haces eso, php, intenta sacar algun número del string y si no lo encuentra le asigna 0 es decir total se esta cambiando a un número que es 0(cero).
saludos.
Totalmente de acuerdo con lo que dices, es cierto que es numerico, pero es extraño aun asi; dado que en usos anteriores de la variable funciona correctamente.
Voy a explicar un poco mas del sistema...
Tenemos 2 tipos de carga
I = Inicial
T = Trayectoria
(son 2 formularios de carga de datos, similares, pero con varias diferencias)
Tenemos 4 tipos de educación
1 = Comun
2 = Especial
3 = adultos
4 =Artistica
Digamos que estoy cargando la Trayectoria de educación Comun.
Este tipo de educación tiene 6 años.
Empieza un bucle...
Código PHP:
private function guardar_comun()
{
for($this->anio_actual = 1; $this->anio_actual <= 6; $this->anio_actual++)
{
$this->guardar_fila();
$this->checkFilas();
}
$this->anio_actual = 'total';
$this->guardar_fila();
$this->checkFilas();
$this->checkColumnas();
}
Como verás, se setea el valor de la propiedad anio_actual a 'total'; y funciona correctamente.
En el caso de Artistica, no ocurre lo mismo, dado que dicho tipo de educación NO posee años, sino Niveles (Comun tb los posee, pero no voy a ponerme a explayar en el tema).
Código PHP:
private function guardar_artistica()
{
for($this->arr_nivel_actual = 0; $this->arr_nivel_actual <= sizeof($this->id_niveles)-1; $this->arr_nivel_actual++)
{
$this->id_nivel_actual = $this->id_niveles[$this->arr_nivel_actual];
$this->nivel_actual_format = strtolower($this->niveles[$this->arr_nivel_actual]);
$this->nivel_actual_format = str_replace('.', "", $this->nivel_actual_format);
$this->nivel_actual_format = str_replace(' ', "_", $this->nivel_actual_format);
$this->guardar_fila();
$this->checkFilas();
}
$this->anio_actual = 'total';
$this->guardar_fila();
$this->checkFilas();
$this->checkColumnas();
}
Con lo que me has dicho, me ha hecho pensar que deberia modificar la función de Artistica, agregandole, previamente a modificar el valor de la propiedad anio_actual, lo siguiente:
Código PHP:
$this->anio_actual = '';
Ahora voy a ver de levantar el servidor y la base de datos para ver si funciona correctamente de dicha forma.
Saludos desde Córdoba.
Ofesad.