Foros del Web » Programando para Internet » PHP »

darle color a filas de tabla php dependiendo de su valor

Estas en el tema de darle color a filas de tabla php dependiendo de su valor en el foro de PHP en Foros del Web. Hola a todos, tengo una duda, no se como hacer para distinguir filas de una tabla php formada por consulta previa de mi BD mysql ...
  #1 (permalink)  
Antiguo 06/10/2014, 09:20
Avatar de Jlopez2014  
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 9 años, 9 meses
Puntos: 0
Pregunta darle color a filas de tabla php dependiendo de su valor

Hola a todos, tengo una duda, no se como hacer para distinguir filas de una tabla php formada por consulta previa de mi BD mysql con un color diferente. este es mi codigo php con el que formo mi tabla y quisiera saber como distinguir la fila de la fecha festiva o domingo...

Código PHP:
Ver original
  1. <?php
  2. $sql="
  3. SELECT entrada.fecha, entrada.horario, entrada.empleado, entrada.proyecto, entrada.encargado, entrada.salida, entrada.novedades, entrada.festivo, entrada.almuerzo
  4. FROM entrada
  5. WHERE entrada.empleado = '".$cedula."' AND  fecha BETWEEN '2014-09-29' AND '2014-10-13'
  6. ORDER BY entrada.fecha";
  7.         $cs=mysql_query($sql,$cn);
  8.         echo"<center><font size=4 color='navy'><strong>DETALLES N&Oacute;MINA</strong></font><br><br>
  9. <table border='4' bordercolor='#0099FF'>
  10. <tr>
  11. <td><font color='navy'><strong>Fecha</strong></font></td>
  12. <td><font color='navy'><strong>Horario Entrada</strong></font></td>
  13. <td><font color='navy'><strong>Horario Salida</strong></font></td>
  14. <td><font color='navy'><strong>Proyecto</strong></font></td>
  15. <td><font color='navy'><strong>Almuerzo</strong></font></td>
  16. <td><font color='navy'><strong>Novedades</strong></font></td>
  17. <td><font color='navy'><strong>Ing. Encargado</strong></font></td>
  18. </tr>";
  19.         while($resul=mysql_fetch_array($cs)){
  20.             $var=$resul[0];
  21.             $var1=$resul[1];
  22.             $var2=$resul[2];
  23.             $var3=$resul[3];
  24.             $var4=$resul[4];
  25.             $var5=$resul[5];
  26.             $var6=$resul[6];
  27.             $var7=$resul[7];
  28.             $var8=$resul[8];
  29.            
  30.             echo "<tr>
  31. <td><input name='txtfecha[]' type='text'  value='$var' size='6'/></td>
  32. <td><input name='txtentrada]' type='text'  value='$var1' size='4'/></td>
  33. <td><input name='txtsalida[]' type='text'  value='$var5' size='4'/></td>
  34. <td><input name='txtproyecto[]' type='text'  value='$var3' size='10'/></td>
  35. <td><input name='txtalmuerzo[]' type='text'  value='$var8' size='1'/></td>
  36. <td><textarea name='txtnovedad[]' type='text'  value='' size='15'>$var6</textarea></td>
  37. <td><input name='txtencargado[]' type='text'  value='$var4' size='5'/></td>
  38.  
  39.  
  40. </tr>";
  41.             }
  42.            
  43.             echo "</table>
  44. </center>";
  45. ?>

Y esta es mi BD (entrada), y su estructura:

fecha (date), horario (time), empleado (int 20), proyecto (var 20), encargado (var 50), salida (time), novedades (var 255), festivo (var 2), almuerzo (var 2)...

Gracias por su colaboración de antemano
  #2 (permalink)  
Antiguo 06/10/2014, 09:23
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: darle color a filas de tabla php dependiendo de su valor

http://www.textfixer.com/tutorials/c...ating-rows.php
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 06/10/2014, 10:43
Avatar de Jlopez2014  
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: darle color a filas de tabla php dependiendo de su valor

Gracias por el aporte compañero, pero no requiero intercalar los colores, sino que las filas de la tabla si son de dia festivo o domingo tengan un color diferente...
  #4 (permalink)  
Antiguo 06/10/2014, 10:46
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: darle color a filas de tabla php dependiendo de su valor

Eso ya es css y html. Nada tiene que ver con php
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 06/10/2014, 11:10
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: darle color a filas de tabla php dependiendo de su valor

Pues para ser mas especifico eso no se resuelve solamente con css como comentan. A partir de javascript puedes manipular el DOM del archivo y darle a la tabla una nueva clase de CSS que se encargue de cambiar el color del dato si es festivo o domingo.

No se si conoces la manipulación del DOM a partir de javascript. Cualquier cosa ya nos comentas.
__________________
Blog de humor http://elcuasatar.net63.net/
  #6 (permalink)  
Antiguo 06/10/2014, 14:24
Avatar de Jlopez2014  
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: darle color a filas de tabla php dependiendo de su valor

no, no lo conozco, estoy aprendiendo aún muchas cosas y por eso consulto a quienes ya saben...
  #7 (permalink)  
Antiguo 07/10/2014, 14:07
Avatar de Jlopez2014  
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: darle color a filas de tabla php dependiendo de su valor

vi un caso similar a este en un post antiguo y basandome en el aplique este codigo pero solo consigo que toda la tabla cambie de color y no una fila en especifico...

Código PHP:
Ver original
  1. <?php
  2. $sql="
  3. SELECT entrada.fecha, entrada.horario, entrada.empleado, entrada.proyecto, entrada.encargado, entrada.salida, entrada.novedades, entrada.festivo, entrada.almuerzo
  4. FROM entrada
  5. WHERE entrada.empleado = '".$cedula."' AND  fecha BETWEEN '2014-09-29' AND '2014-10-13'
  6. ORDER BY entrada.fecha";
  7.         $cs=mysql_query($sql,$cn);
  8.         echo"<center><font size=4 color='navy'><strong>DETALLES N&Oacute;MINA</strong></font><br><br>
  9. <table border='4' bordercolor='#0099FF'>
  10. <tr>
  11. <td><font color='navy'><strong>Fecha</strong></font></td>
  12. <td><font color='navy'><strong>Horario Entrada</strong></font></td>
  13. <td><font color='navy'><strong>Horario Salida</strong></font></td>
  14. <td><font color='navy'><strong>Proyecto</strong></font></td>
  15. <td><font color='navy'><strong>Almuerzo</strong></font></td>
  16. <td><font color='navy'><strong>Novedades</strong></font></td>
  17. <td><font color='navy'><strong>Ing. Encargado</strong></font></td>
  18. </tr>";
  19.         while($resul=mysql_fetch_array($cs)){
  20.           $var7 = array(  
  21.         'Si' => '#DD0000',  
  22.         'No' => '#FF00FF'
  23.     );
  24.  
  25.             $var=$resul[0];
  26.             $var1=$resul[1];
  27.             $var2=$resul[2];
  28.             $var3=$resul[3];
  29.             $var4=$resul[4];
  30.             $var5=$resul[5];
  31.             $var6=$resul[6];
  32.             $var7=$resul[7];
  33.             $var8=$resul[8];
  34.            
  35.             echo "<tr bgcolor=' ". $var7[$resul['txtfecha']] ."'>
  36. <td><input name='txtfecha[]' type='text'  value='$var' size='6'/></td>
  37. <td><input name='txtentrada]' type='text'  value='$var1' size='4'/></td>
  38. <td><input name='txtsalida[]' type='text'  value='$var5' size='4'/></td>
  39. <td><input name='txtproyecto[]' type='text'  value='$var3' size='10'/></td>
  40. <td><input name='txtalmuerzo[]' type='text'  value='$var8' size='1'/></td>
  41. <td><textarea name='txtnovedad[]' type='text'  value='' size='15'>$var6</textarea></td>
  42. <td><input name='txtencargado[]' type='text'  value='$var4' size='5'/></td>
  43.  
  44.  
  45. </tr>";
  46.             }
  47.            
  48.             echo "</table>
  49. </center>";
  50. ?>
  #8 (permalink)  
Antiguo 07/10/2014, 14:32
Avatar de jesus1975  
Fecha de Ingreso: febrero-2012
Ubicación: Valencia
Mensajes: 54
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: darle color a filas de tabla php dependiendo de su valor

Necesitas dos colores, es decir, una fila de un color e ir alternado o necesitas que segun el dato puede haber muchos colores???
__________________
Nuevo portal de anuncios http://www.aquituanuncio.com
  #9 (permalink)  
Antiguo 07/10/2014, 15:37
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 7 meses
Puntos: 38
Respuesta: darle color a filas de tabla php dependiendo de su valor

Mirate la función mysql DAYOFWEEK(date)

Returns the weekday index for date (1 = Sunday, 2 = Monday, …, 7 = Saturday). These index values correspond to the ODBC standard

Cuando construyas la select agrega el campo de fecha as diasemana y en el bucle while metes un if si es 1 o 7 haces un echo del row con un css diferente.
Un saludo !
Suerte!
  #10 (permalink)  
Antiguo 08/10/2014, 13:34
Avatar de Jlopez2014  
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: darle color a filas de tabla php dependiendo de su valor

Necesito es diferenciar solamente la fila del dia festivo o domingo de las demás por un color distinto... los demas datos en la tabla no requieren formato o cosa similar a la de los domingos... si en la tabla salen los datos de toda la semana solamente la fila del domingo sea roja mientras las demas por default son azules por decir asi...
  #11 (permalink)  
Antiguo 08/10/2014, 14:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: darle color a filas de tabla php dependiendo de su valor

Creo que la propiedad que buscas sería "bgcolor"...
Un ejemlo que he visto por allí sería:

Código HTML:
Ver original
  1. <table border="1" cellpadding="0" cellspacing="0" width="50%">
  2. <tr>
  3. <td width="50%" bgcolor="red"></td>
  4. <td width="50%" bgcolor="blue"></td>
  5. </tr>
  6. <tr>
  7. <td width="50%"></td>
  8. <td width="50%"></td>
  9. </tr>
No sé si es eso lo que quieres...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 08/10/2014 a las 14:31
  #12 (permalink)  
Antiguo 08/10/2014, 15:03
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 2 meses
Puntos: 17
Respuesta: darle color a filas de tabla php dependiendo de su valor

Para esto pienso que primero tienes que conocer los días festivos de esos años y luego los días que caen los domingos en el calendario. Luego crearte una función que te filtre esas fechas especificas y te las pinte el Fondo (bgColor) de color Rojo como deseas.

Mira esto haber si te ayuda en algo, pero creo que debes crear una función por aparte y luego incluirla en tú código.

Código PHP:
Ver original
  1. function domingos_del_mes($mes, $anho){
  2.    
  3.     $fecha1 = strtotime($anho.'-'.$mes.'-01');
  4.     $fecha2 = strtotime($anho.'-'.$mes.'-'.date("t",mktime(0,0,0,$mes,1,$anho)));
  5.    
  6.     for($fecha1;$fecha1<=$fecha2;$fecha1=strtotime('+1 day ' . date('Y-m-d',$fecha1))){
  7.         if((strcmp(date('D',$fecha1),'Sun')==0)){
  8.             $do[] = date('Y-m-d',$fecha1);
  9.         }
  10.     }
  11.  
  12.     return $do;
  13. }
  14.  
  15. //recorrer todos los meses del año
  16. for($d=1;$d<=12;$d++){
  17.  
  18.     print_r(domingos_del_mes($d,2012));
  19.  
  20. echo "<hr/>";
  21. }
  22.  
  23. ?>

Saludos!
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1
  #13 (permalink)  
Antiguo 09/10/2014, 06:47
Avatar de Jlopez2014  
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: darle color a filas de tabla php dependiendo de su valor

Exacto, la propiedad para trabajar es el bgcolor, y lo de la función de identificar los festivos y dias domingos es muy util obviamente comenzaré a ver como aplicarla al código, más yo pensado en no complicar mucho todo en el formulario donde ingreso esos datos, tengo un campo para especificar manualmente si el día es festivo o domingo, y por eso si notan en mi código al principio del post, en mi consulta sql donde extraigo los datos, esta consultado el campo "entrada.festivo" que contiene como valor un "Si" o un "No" donde el "si" se aplica a los dos casos (festivos, domingos) y teniendo en cuenta eso, quiero saber como agregar a mi linea de código que se tome la fila un color diferente si en los datos consultados aparece un "Si" en entrada.festivo... y si es lo contrario no pasa nada... Gracias por sus aportes, estoy viendo igual acá como aaplicar, les comunico cualquier cosa
  #14 (permalink)  
Antiguo 09/10/2014, 06:59
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: darle color a filas de tabla php dependiendo de su valor

La etiqueta bgcolor se considera ya obsoleta (http://www.tutorialspoint.com/html/h...cated_tags.htm), no se si para futuras versiones de los navegadores le daran soporte o no, yo en lo personal sugiero que crearas en css una clase llamada por ejemplo festivo y desde alli le dieras un background color con el color que quieras, por tanto si la base de datos tiene si o no es tan facil como recorrer todos los registros y realizar una condición logica.

Código PHP:
if (fila['entrada.festivo']=="si")
{
echo 
"<tr class='festivo'>".aqui va la informacion."</tr>"
}
else {
 echo  
"<tr>".aqui va la informacion."</tr>"

Igual mi opinión es que como todos te sugieren crees una función para identificar los domingos y que no se deban ingresar a mano. Para los festivos si es mas dificil porque cambian segun cada país.
__________________
Blog de humor http://elcuasatar.net63.net/

Última edición por cuasatar; 09/10/2014 a las 07:08
  #15 (permalink)  
Antiguo 09/10/2014, 08:47
Avatar de Jlopez2014  
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: darle color a filas de tabla php dependiendo de su valor

Hola Cuasatar, miré tu sugerencia de código aunque por su sentencia se ve que cambia el color de toda la tabla si hay un festivo o domingo y no solo la fila del dato correspondiente, más así tampoco pasa nada... mira mi código de arriba, para ver que se puede hacer pues este es el que modifiqué ahora y nada :-/

Código PHP:
Ver original
  1. <?php
  2. $sql="
  3. SELECT entrada.fecha, entrada.horario, entrada.empleado, entrada.proyecto, entrada.encargado, entrada.salida, entrada.novedades, entrada.festivo, entrada.almuerzo
  4. FROM entrada
  5. WHERE entrada.empleado = '".$cedula."' AND  fecha BETWEEN '2014-09-29' AND '2014-10-13'
  6. ORDER BY entrada.fecha";
  7.         $cs=mysql_query($sql,$cn);
  8.         echo"<center><font size=4 color='navy'><strong>DETALLES N&Oacute;MINA</strong></font><br><br>
  9. <table border='4' bordercolor='#0099FF'>
  10. <tr>
  11. <td><font color='navy'><strong>Fecha</strong></font></td>
  12. <td><font color='navy'><strong>Horario Entrada</strong></font></td>
  13. <td><font color='navy'><strong>Horario Salida</strong></font></td>
  14. <td><font color='navy'><strong>Proyecto</strong></font></td>
  15. <td><font color='navy'><strong>Almuerzo</strong></font></td>
  16. <td><font color='navy'><strong>Novedades</strong></font></td>
  17. <td><font color='navy'><strong>Ing. Encargado</strong></font></td>
  18. </tr>";
  19.         while($resul=mysql_fetch_array($cs)){
  20.             $var=$resul[0];
  21.             $var1=$resul[1];
  22.             $var2=$resul[2];
  23.             $var3=$resul[3];
  24.             $var4=$resul[4];
  25.             $var5=$resul[5];
  26.             $var6=$resul[6];
  27.             $var7=$resul[7];
  28.             $var8=$resul[8];
  29.            
  30.              if ($var7=="si")
  31. {
  32. echo "<tr bgcolor='navy'>
  33. <td><input name='txtfecha[]' type='text'  value='$var' size='6'/></td>
  34. <td><input name='txtentrada]' type='text'  value='$var1' size='4'/></td>
  35. <td><input name='txtsalida[]' type='text'  value='$var5' size='4'/></td>
  36. <td><input name='txtproyecto[]' type='text'  value='$var3' size='10'/></td>
  37. <td><input name='txtalmuerzo[]' type='text'  value='$var8' size='1'/></td>
  38. <td><textarea name='txtnovedad[]' type='text'  value='' size='15'>$var6</textarea></td>
  39. <td><input name='txtencargado[]' type='text'  value='$var4' size='5'/></td>
  40.  
  41.  
  42. </tr>";
  43. }
  44. else
  45. {
  46. echo "<tr>
  47. <td><input name='txtfecha[]' type='text'  value='$var' size='6'/></td>
  48. <td><input name='txtentrada]' type='text'  value='$var1' size='4'/></td>
  49. <td><input name='txtsalida[]' type='text'  value='$var5' size='4'/></td>
  50. <td><input name='txtproyecto[]' type='text'  value='$var3' size='10'/></td>
  51. <td><input name='txtalmuerzo[]' type='text'  value='$var8' size='1'/></td>
  52. <td><textarea name='txtnovedad[]' type='text'  value='' size='15'>$var6</textarea></td>
  53. <td><input name='txtencargado[]' type='text'  value='$var4' size='5'/></td>
  54.  
  55.  
  56. </tr>";}
  57.             }
  58.            
  59.             echo "</table>
  60. </center>";
  61. ?>
Gracias por su tiempo

Etiquetas: color, filas, php+base+de+datos
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 14:01.