Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Calendario PHP con eventos con cierto estatus

Estas en el tema de Calendario PHP con eventos con cierto estatus en el foro de PHP en Foros del Web. Hola amigos, 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 ...
  #1 (permalink)  
Antiguo 07/04/2014, 10:20
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 3 meses
Puntos: 1
Exclamación Calendario PHP con eventos con cierto estatus

Hola amigos,
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
  1. // Seleccionar notas con el mes, año y estatus especificos
  2. $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());
  3.  
  4. // Guardo mi info en Array 
  5. while ($eventos = mysql_fetch_array($query_eventos)) {
  6.           $eventos_en_bd[] = $eventos['fecha'];
  7. }
  8.  
  9. // Funciones para tomar primer dia, ultimo dia y total de dias
  10.  
  11. $diames = 1;  
  12. $j=1; // dias que empieza a contarse el 1º + los dias del mes
  13.  
  14. while ($j < $total_dias) { // aqui empiezo a crear la tabla del calendario
  15.          
  16.           foreach ($eventos_en_bd as $evento) { // Para cada array tomo mi calendario
  17.                     $dia_mes = explode("-",$evento);
  18.                     // 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)
  19.                         echo "<tr> \n";
  20.                 $i=0;
  21.  
  22.                while ($i < 7) { // aqui verifico que sean los 7 dias de la semana  
  23.  
  24.                      if ($j <= $numero_primer_dia) {
  25.                      echo "<td style='background:#EEEEEE'></td> \n"; // sombrea días inútiles
  26.                     } elseif ($diames > $ultimo_dia) {
  27.                      echo "<td style='background:#EEEEEE'></td> \n"; // sombrea días inútiles
  28.                     } else {   
  29.                       if ($diames == $dia_mes[2]) { // si el dia del mes esta en mi BD agrego la palabra Evento
  30.                           echo " <td><a style=\"display:block;\">".$diames." Evento</a></td> \n";
  31.                           $diames++;
  32.                       } else {
  33.                       echo " <td><a style=\"display:block;\">".$diames."</a></td> \n";
  34.                           $diames++;
  35.                       }
  36.  
  37.                     }
  38.                     $i++;
  39.                     $j++;
  40.                 }
  41.                echo "</tr> \n";
  42.  
  43.              }
  44. }

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
  1. $query_eventos = mysql_query("SELECT * FROM calendario WHERE (month(fecha)=$mes AND year(fecha)=$anio)")or die(mysql_error());
  #2 (permalink)  
Antiguo 07/04/2014, 17:05
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Calendario PHP con eventos con cierto estatus

He intentado cambiar el foreach de posicion, lo que me da diferentes resultados, a veces solo me toma el primer valor "05" y luego el "27".
Alguién que podría indicarme en que estoy fallando porfavor???
  #3 (permalink)  
Antiguo 08/04/2014, 08:51
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Calendario PHP con eventos con cierto estatus

Bueno lo solucione colocando antes de la condicion if ($diames == $dia_mes[2]) otra consulta validando los estatus.
Nos vemos

Etiquetas: mysql+consulta, php+base+de+datos+array
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:04.