Espero puedan ayudar, cree un calendario que me muestra los días del mes en su día correspondiente. Tengo una BD donde guardo notas (eventos) y lo que necesito es que si el mes y el año se encuentran en la BD el día de esa fecha me seleccione evento.
Al principio me funcionaba correctamente pero al agregar a mi consulta que la nota tiene que ser de estatus Apartado o Garantizado no me funciona del todo bien.
Aqui mi codigo
Código PHP:
Ver original
// Seleccionar notas con el mes, año y estatus especificos $query_eventos = mysql_query("SELECT * FROM calendario WHERE (month(fecha)=$mes AND year(fecha)=$anio) AND (estatus='Apartado' OR estatus='Garantizado')")or die(mysql_error()); // Guardo mi info en Array $eventos_en_bd[] = $eventos['fecha']; } // Funciones para tomar primer dia, ultimo dia y total de dias $diames = 1; $j=1; // dias que empieza a contarse el 1º + los dias del mes while ($j < $total_dias) { // aqui empiezo a crear la tabla del calendario foreach ($eventos_en_bd as $evento) { // Para cada array tomo mi calendario // echo $dia_mes[2]; (aqui solo comprobe que realmente esten guardados en el array los días correspondientes a mi query, lo cual si me los toma correctamente) echo "<tr> \n"; $i=0; while ($i < 7) { // aqui verifico que sean los 7 dias de la semana if ($j <= $numero_primer_dia) { echo "<td style='background:#EEEEEE'></td> \n"; // sombrea días inútiles } elseif ($diames > $ultimo_dia) { echo "<td style='background:#EEEEEE'></td> \n"; // sombrea días inútiles } else { if ($diames == $dia_mes[2]) { // si el dia del mes esta en mi BD agrego la palabra Evento echo " <td><a style=\"display:block;\">".$diames." Evento</a></td> \n"; $diames++; } else { echo " <td><a style=\"display:block;\">".$diames."</a></td> \n"; $diames++; } } $i++; $j++; } echo "</tr> \n"; } }
En este caso mi variable $dia_mes[2] me muestra "05 12 27 05 12 27" y solo el 5 y 12 estan con Evento y me agrega una fila de mas sombreada, el 27 no me lo toma en cuenta para nada.
Lo curioso es cuando le quito a mi consulta el estatus, a todos los días "05 12 13 20 27" les agrega la palabra Evento sin ningún problema. ¿En qué estoy fallando?
Código PHP:
Ver original
$query_eventos = mysql_query("SELECT * FROM calendario WHERE (month(fecha)=$mes AND year(fecha)=$anio)")or die(mysql_error());