Foros del Web » Programando para Internet » PHP »

Colorear campos de una tabla si el registro existe

Estas en el tema de Colorear campos de una tabla si el registro existe en el foro de PHP en Foros del Web. Bueno, me he quedado atorada con este proyecto que intento sacar. Estoy haciendo un tipo Calendario donde debes seleccionar el mes y el año y ...
  #1 (permalink)  
Antiguo 15/08/2013, 12:27
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 3 meses
Puntos: 1
Colorear campos de una tabla si el registro existe

Bueno, me he quedado atorada con este proyecto que intento sacar.

Estoy haciendo un tipo Calendario donde debes seleccionar el mes y el año y te mostrara en una columna superior los días del mes y el año seleccionados y una fila del lado izquierdo con numeros consecutivos dependiendo de un dato que saco de la BD y a la vez se rellena de cuadritos. Mi codigo es el siguiente:

Código PHP:
Ver original
  1. echo '<table><tr><td bgcolor="#f7f7f7">Número</td>';  //Inicio mi tabla
  2.  
  3. $dia = 1;  //Doy valor a variables
  4. $rellenar = 1;  
  5. while($dia <= $dias_x_mes) //Los dias_x_mes son sacado de una función anterior
  6. {
  7.      echo '<td bgcolor="#f7f7f7" >'.$dia.'</td>';  
  8.      $dia++;
  9.  }
  10.  
  11. echo '</tr>';
  12.  
  13. $num = $dia-1; //Le resto uno al resultado de día
  14.  
  15. while ($result_row2 = mysql_fetch_array($resultado2)) //Consulta en BD para sacar la fila de datos
  16. {
  17.     echo '<tr><td bgcolor="#f7f7f7" >'.$result_row2['dato'].'</td>'; //Forma la fila de datos
  18.  
  19.     while($rellenar <= $num)
  20.     {
  21.         echo '<td></td>';
  22.         $rellenar++;
  23.     }
  24. }
  25.  
  26. echo '</table>';

Bueno hasta aquí funciona muy bien. Ahora lo que requiero es colorear los cuadritos de $rellenar de algún color dependiendo si el evento esta registrado en BD.

Por ejemplo: Si en el DATO 1 del MES 1 del AÑO 2013 existen eventos registrados en la BD estos deberan colorearse dependiendo del día que se seleccione de la BD. Recordemos que el día es la columna superior. Por lo que si tengo eventos en el día 2, día 4, día 6, estos 3 cuadritos deberán ser de un color y si no existe ningún evento registrado quedarse como lo tengo.

Alguna idea de como hacerlo?
  #2 (permalink)  
Antiguo 15/08/2013, 13:01
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: Colorear campos de una tabla si el registro existe

Hola puedes
Código PHP:
Ver original
  1. while($rellenar <= $num)
  2.     {
  3.     // realiza una consulta a tu base de datos desde aqui con el dia en el que estas
  4.     // si encuentra resultado usa un if para cambiar el estilo de tu celda
  5.         echo "<td style=\"$style\"></td>";
  6.         $rellenar++;
  7.     }

Saludos
  #3 (permalink)  
Antiguo 16/08/2013, 13:01
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Colorear campos de una tabla si el registro existe

Hola... Estoy intentando hacer lo que me comentaste pero no se como tomar el día en el que estoy. El día en el que estoy puede ser cualquiera del mes.
Lo tomaría de la primer columna que me muestra todos los días de cada mes pero como hago para que mis celdas vacía que estan en "rellenar" tomen el valor de la primer celda de su propia fila. Me doy a entender??

Mira mas o menos tengo esto

Código PHP:
Ver original
  1. while($rellenar <= $num)
  2. {
  3.      // realiza una consulta a tu base de datos desde aqui con el dia en el que estas
  4.         $consulta = "SELECT * FROM tabla1 WHERE id='".$result_row2['dato']."'";   //Aquí le indico que tome todos los datos de la tabla 1 donde id sea igual a la primer columna. Es decir la que me muestra la numeracion. De aquí sacaría la fecha
  5.         $resultado = mysql_query($consulta);
  6.  
  7.         while($result_row = mysql_fetch_array($resultado))
  8.     {
  9.         $fecha = explode("-", $result_row['fecha']);
  10.         $anio_r = $fecha[0]; $mes_r = $fecha[1]; $dia_r = $fecha[2];
  11.     }
  12.  
  13.         // si encuentra resultado usa un if para cambiar el estilo de tu celda
  14. // como recordaras ya tengo anteriormente seleccionado el mes y el año el cual me mostro toda mi tabla así que con esos valores tomo el el valor del año y el mes.
  15.            if (($anio_r == $anio) && ($mes_r == $mes) && ($dia_r == ?)){
  16.                echo "<td bgcolor="red"></td>";
  17.            }
  18.  
  19.           $rellenar++;
  20. }
Como verás puedo validar si el mes y el año existen en mi BD para colorearlos pero el día??? Estaba pensando tomarle un id a cada celda dentro del while (lo cual ya lo probe y me coloca los días del mes a cada celda) pero no se como tomar ese id para compararlo como mi día.

Se podrá hacer?

También se que no es muy conveniente tener muchos whiles en un sistema ya que puedo provocar un loop. Sabes como solucionar algo así??

Gracias por tu ayuda

Etiquetas: php+bd+mysql
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 07:31.