Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/08/2013, 14:07
nades
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 12 años, 2 meses
Puntos: 1
Exclamación Pintar rango de una fecha a otra

Hola!
Estoy haciendo un sistema en donde guardo eventos del mes. Estos eventos se ven reflejados de color rojo en la celda correspondiente al día para visualizar que ese día ya esta ocupado por un evento.

Como puedo hacerle para en caso de que el evento dure varios días. Todos los días se marquen de color rojo.

POR EJEMPLO:
Si el EVENTOX tiene la fecha del 26/08/2013. Ese día se marcará de rojo. (esto ya lo tengo)
Si el EVENTOY tiene la fecha del 26/08/2013-29/08/2013. Actualmente unicamente se pinta el día 26 y necesito que se pinte el 26,27 y 28

En mi BD tengo una fila llamada rango que calcula los días que existen (regresando a mi ejemplo) del 26 al 29. En este caso sería 3.

Este es el código que actualmente tengo:

Código PHP:
Ver original
  1. $fechas_en_bd[] = $fechas['fecha_1']; //Este resultado sale de una consulta SQL
  2.  
  3. $rellenar=1; //Esta variable servirá para rellenar y saber en que día estoy
  4.        
  5. //Estructura While para rellenar COLUMNAS hasta el número de días existentes    
  6. while($rellenar <= $dias_x_mes)
  7. {
  8.     $esta_fecha_sql = $anio."-".$mes."-".$rellenar; //Se crea la fecha en la que se encuentra el ciclo
  9.    
  10.     if (in_array($esta_fecha_sql, $fechas_en_bd)) //Comparamos si esta fecha esta en el array de las fechas de la BD
  11.    {
  12.      //Consulta de BD para tomar todos los datos de los eventos donde exista $esta_fecha_sql
  13.     $cons0 = mysql_query("SELECT * FROM eventos WHERE fecha_1='".$esta_fecha_sql."'");
  14.              
  15.     while($query0 = mysql_fetch_array($cons0))
  16.         {
  17.             $ultima_fecha = $query0['fecha_2']; //Esta fecha es el ultimo dia del evento
  18.             $rango = $query0['rango']; //Esto son los número calculados de la fecha1 a la fecha2
  19.         }
  20.  
  21.         echo '<td style="background-color:#D80100"></td>';
  22.    }else{
  23.        echo '<td ></td>';
  24.    }
  25.   $rellenar++;
  26. }

Los datos que me pueden ayudar ya estan tomados en $ultima_fecha y $rango.

Probe con un ciclo FOR
Código PHP:
Ver original
  1. for($z=1;$z==$rango;$z++){
  2.   echo '<td style="background-color:#D80100"></td>';
  3. }

Pero no me marca todos los días, incluso hay unos que ya no se pintan xk el rango es 1 y si cambio la z a 0 tampoco. Que podré hacer?