Hola, he visto que llevas varios dias buscando solucionar tu problema con diferentes formas, te ayudo.
Código PHP:
<?
if($_POST['mostrar']) {
//Guardar variables con POST para mostrar valores seleccionados
$mes = $_POST['mes'];
$anio = $_POST['anio'];
$evento = mysql_query("SELECT * FROM eventos"); //Consulta para sacar fechas
while($fechas = mysql_fetch_array($evento))
{
$FECHAS_EN_BD[]=$fechas[fecha];//<-------------ALMACENAMOS TODAS LAS FECHAS EN UN ARRAY
}
//Ciclo WHILE para mostrar FILA DE DÍAS
//Ciclo WHILE para mostrar COLUMNA DE HORAS
$rellenar=1;//<-------------TU VARIABLE RELLENAR TE SIRVE PARA SABER EN QUE DIA ESTAS
while($rellenar <= $dias_x_mes) //Estructura While para rellenar COLUMNAS hasta el número de días existentes
{
$ESTA_FECHA_SQL=$anio."-".$mes."-".$rellenar;//<-------------CREAMOS LA FECHA EN LA QUE SE ENCUENTRA EL CICLO,DE LA FORMA YYYY-MM-DD YA QUE SE ALMACENAN NORMALMENTE DE ESA FORMA EN LA BD
if (in_array($ESTA_FECHA_SQL, $FECHAS_EN_BD)) {//<-------------COMPARAMOS SI ESTA FECHA ESTA EN EL ARRAY DE LAS FECHAS DE LA BD
echo '<td style="background-color:#D80100"></td>';
}else{
echo '<td></td>';
}
$rellenar++;
}
}
?>
Es importante que le des una estudiada a los array en php y sus funciones.
http://www.php.net/manual/es/ref.array.php
Saludos