Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/06/2011, 12:15
kenproxd
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 9 meses
Puntos: 8
Problema con script calendario

Hola!

Estoy desarrollando una web en la que deseo mostrar un calendario y que este marque los días en los que se ha programado alguna actividad. Hice un sistema simple para agregar eventos a la base datos. Éste guarda la fecha en un campo date.

Luego, busqué en internet un script gratuito que cree un calendario común, encontré el maxCalendar que es muy sencillo. Éste marca sólo el día actual.

Entonces, empezé a revisar el código para poder adaptarlo a mi necesidad y encontré las siguientes lineas:

Código PHP:
Ver original
  1. $actday = 0;
  2.  
  3. for($i=$firstDay['wday'];$i<=7;$i++){
  4.     $actday++;
  5.     if (($actday == $today['mday']) && ($today['mon'] == $month)) {
  6.         $class = ' class="actday"';
  7.     } else {
  8.         $class = '';
  9.     }
  10.     echo "<td$class>$actday</td>";
  11. }

Éstas muestran la primera semana del mes. Entonces pensé en lo siguiente para cambiar eso:

Código PHP:
Ver original
  1. $actday = 0;
  2. $mes = date('m');
  3.    
  4. $con = mysql_connect() or die(mysql_error());
  5.  
  6. $query = mysql_query("SELECT * FROM eventos WHERE MONTH(date) = '$mes'") or die(mysql_error());
  7. $evento = mysql_fetch_array($query);
  8.    
  9. for($i=$firstDay['wday'];$i<=7;$i++){
  10.     $actday++;
  11.     $f = explode("-",$evento['date']);
  12.     $dia = $f[2];
  13.  
  14.     if($actday == $dia) {
  15.         echo "<td class='actday'>$actday</td>";
  16.     } else {
  17.         echo "<td>$actday</td>";
  18.     }
  19.  
  20. }

Como se puede notar a simple vista, ésto sólo marcará 1 evento. Cómo puedo hacer para crear un bucle que marque todos los días en los que hayan eventos programados?

Gracias desde ya.

Última edición por kenproxd; 03/06/2011 a las 12:20