Solución fácil: genera una hoja de estilo.
Supongamos que lo que en tu imagen es "verde", significa que en el campo valor de Detalle_entregables hay un 0, "amarillo" es un 1, y "rojo" es un dos.
Itera sobre todos los Detalle_entregables, y, dependiendo del valor, metes en un array el conjunto id-dia-mes-año de ese Detalle_entregables.
Es decir, segun tu imagen, para el entregable 2:
- en el array $valoresVerdes has metido"2_04_05_2013","2_02_06_2013","2_04_06_2013" ...
- en el array $valoresRojos has metido "2_01_05_2013","2_02_05_2013"...etc
Luego se crea una hoja de estilo del tipo:
Código PHP:
Ver original<style type="text/css">
<?php
if(count($valoresVerdes)>0) echo ".".implode(",.",$valoresVerdes)." {background-color:green}"; if(count($valoresRojos)>0) echo ".".implode(",.",$valoresRojos)." {background-color:red}"; ...
Finalmente, a cada <td> de la tabla, le asignas la clase id_dia_mes_año correspondiente.
Lógicamente, si lo que esperas es que haya más verdes que otras cosas, asigna una clase constante que ponga por defecto el fondo en verde, y, simplemente, no proceses el array $valoresVerdes (ni siquiera lo crees).