Foros del Web » Programando para Internet » PHP »

Cambiar color de celdas

Estas en el tema de Cambiar color de celdas en el foro de PHP en Foros del Web. Hola tengo una pequeña duda. Tengo unos datos en una tabla en mysql y yo para mostrarlo lo hago por medio de php en una ...
  #1 (permalink)  
Antiguo 13/12/2008, 10:54
Avatar de Coala  
Fecha de Ingreso: marzo-2007
Ubicación: Chile/Santiago
Mensajes: 150
Antigüedad: 17 años, 1 mes
Puntos: 0
Cambiar color de celdas

Hola tengo una pequeña duda.
Tengo unos datos en una tabla en mysql y yo para mostrarlo lo hago por medio de php en una serie de filas que dependiendo de la cantidad de datos que bienen de la consulta son las que se crean. Lo que yo deseo es poder intercambiando las filas de colores. Por ejemplo, que la fila 1 sea de color rojo, la fila 2 de color azul, la fila 3 color rojo, la fila 4 color azul........ y asi sucesivamente. Ahora yo Tengo asignado un color "#CCCCFF" pero todas las que se crean son de ese color.
Nose, como realizar esa operación ¿ he pensado en preguntar si acaso la fila en donde se van a mostrar los datos es par o impar , pero no se como llevarlo a cabo :(?

Aqui dejo el codigo en donde tengo cargo los datos:

Código PHP:
echo '<tr>';
                    echo 
'<form name="modificar_vecino" action="adm_maestro_vecino.php" method="post" target="_self">';
                                echo 
'</form>';
                    
//empieso a crear las filas con los campos de la base datos
                    
echo '<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[1].'</font></td>';
                    echo 
'<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[2].'</font></td>';
                    echo 
'<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[3].'</font></td>';
                    echo 
'</tr>'

Muchas gracias.

Última edición por Coala; 13/12/2008 a las 11:01
  #2 (permalink)  
Antiguo 13/12/2008, 11:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cambiar color de celdas

pues... se hace con comparaciones IF

Código:
++$fila;

SI ( $fila == 0 ) $color = 'x';
SI ( $fila == 1 ) $color = 'y';
SI ( $fila == 2 ) $color = 'z';

// ...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/12/2008, 11:28
Avatar de Coala  
Fecha de Ingreso: marzo-2007
Ubicación: Chile/Santiago
Mensajes: 150
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Cambiar color de celdas

Cita:
Iniciado por pateketrueke Ver Mensaje
pues... se hace con comparaciones IF

Código:
++$fila;

SI ( $fila == 0 ) $color = 'x';
SI ( $fila == 1 ) $color = 'y';
SI ( $fila == 2 ) $color = 'z';

// ...
Si, lo habia pensado, pero eso es practico cuando hay poco datos, pero cuando hay muchos, nose si sera practico hacer un if para cada fila.

Yo mas menos pienso esto:

Código PHP:
if ($fila 2==0

echo 
'<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[1].'</font></td>';
                    echo 
'<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[2].'</font></td>';
                    echo 
'<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[3].'</font></td>';
                    echo 
'</tr>';  

else 


echo 
'<td bgcolor="#CCCCCC"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[1].'</font></td>';
                    echo 
'<td bgcolor="#CCCCCC"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[2].'</font></td>';
                    echo 
'<td bgcolor="#CCCCCC"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[3].'</font></td>';
                    echo 
'</tr>';  
?> 
nose si es viable mi opción, pero, la duda que tengo es como asociarle un numero a la fila para preguntar por ella
  #4 (permalink)  
Antiguo 13/12/2008, 11:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cambiar color de celdas

mmm....

primero, crea una $variable contador y esa la vas incrementando...

Código PHP:
$count 0;

while (
/* ... */)
{
  ++
$count;
  
  
// comparaciones

  
echo '<td style="color: '$color'"></td>';


demás, así reduces todo... ya que tu manera es demasiado redundante... vaya...

¿¿para que repetir el 98% del HTML, si solo cambia... un 2% ???

se inteligente, y creativo!



--

bueno, si son muchos datos.... ¿como cuantos quieres comparar??

¿¿ no serán muchas comparaciones ??


__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 13/12/2008 a las 14:00 Razón: ¿ incrementeando ?
  #5 (permalink)  
Antiguo 13/12/2008, 12:53
Avatar de Coala  
Fecha de Ingreso: marzo-2007
Ubicación: Chile/Santiago
Mensajes: 150
Antigüedad: 17 años, 1 mes
Puntos: 0
Hola mira, leyendo y con tu ejemplo se me voy aclarandoo un poco mas mis dudas pero aun asi no me logra ir intercambiando aleatoriamente el color de la filas.

Código PHP:
if (mysql_num_rows($resultado))
            {
              
$fila=0;
                for(
$i 0;$i <= mysql_num_rows($resultado)-1;$i++)
                {
                   
$fila ++;
                    
$registro mysql_fetch_row($resultado);
                    echo 
'<tr>';
                    echo 
'<form name="modificar_vecino" action="adm_maestro_vecino.php" method="post" target="_self">';
                    
                    echo 
'</form>';
                    
//empieso a crear las filas con los campos de la base datos
                    
$res$fila 2;
                    if (
is_int($res)) 
                    { 
                    echo 
'<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[1].'</font></td>';
                    echo 
'<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[2].'</font></td>';
                    echo 
'<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[3].'</font></td>';
                    echo 
'</tr>';
                    }
                    else
                    { 
                    echo 
'<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[1].'</font></td>';
                    echo 
'<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[2].'</font></td>';
                    echo 
'<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[3].'</font></td>';
                    echo 
'</tr>';        
                    };
                } 
Nose en que estoy mal

Gracias

Cita:
Iniciado por Coala Ver Mensaje
Hola mira, leyendo y con tu ejemplo se me voy aclarandoo un poco mas mis dudas pero aun asi no me logra ir intercambiando aleatoriamente el color de la filas.

Código PHP:
if (mysql_num_rows($resultado))
            {
              
$fila=0;
                for(
$i 0;$i <= mysql_num_rows($resultado)-1;$i++)
                {
                   
$fila ++;
                    
$registro mysql_fetch_row($resultado);
                    echo 
'<tr>';
                    echo 
'<form name="modificar_vecino" action="adm_maestro_vecino.php" method="post" target="_self">';
                    
                    echo 
'</form>';
                    
//empieso a crear las filas con los campos de la base datos
                    
$res$fila 2;
                    if (
is_int($res)) 
                    { 
                    echo 
'<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[1].'</font></td>';
                    echo 
'<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[2].'</font></td>';
                    echo 
'<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[3].'</font></td>';
                    echo 
'</tr>';
                    }
                    else
                    { 
                    echo 
'<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[1].'</font></td>';
                    echo 
'<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[2].'</font></td>';
                    echo 
'<td bgcolor="#CCCCFF"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[3].'</font></td>';
                    echo 
'</tr>';        
                    };
                } 
Nose en que estoy mal

Gracias

Ya ahi si me cambia los colores :D, no me habia dado cuenta pero en las dos condiciones estaba del mismo "CCCFF" color :S, por eso no notaba cambio.

Mucha Gracias @pateketrueke !!

Última edición por GatorV; 13/12/2008 a las 17:10
  #6 (permalink)  
Antiguo 13/12/2008, 14:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cambiar color de celdas



aún así, repites casi todo el HTML, lo cual no es eficiente...

Código PHP:
$fila=0;

for(
/* ... */)
{
  
$fila ++;

  
// ...

  //empieso a crear las filas con los campos de la base datos

  
$color is_int($fila 2) ? '#CCCCFF''#00FFCC'

  echo 
'<td bgcolor="'$color'"><font face="Arial, Helvetica, sans-serif" size="2">'.$registro[1].'</font></td>';

  
// ...


NOTA el if-then-else corto .... FOO ? TRUE : FALSE

... en lo que esta hecho aquí, no repetimos código HTML innecesario y esta simplificado ....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 13/12/2008, 16:39
Avatar de Coala  
Fecha de Ingreso: marzo-2007
Ubicación: Chile/Santiago
Mensajes: 150
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Cambiar color de celdas

Se optimiza bastante el codigo de la froma en que me dices.
Pero en la linea que viene tengo una duda:

Código PHP:
  $color is_int($fila 2) ? '#CCCCFF''#00FFCC'
Que función cumple ese signo ? que sale ahí


Gracias
  #8 (permalink)  
Antiguo 13/12/2008, 16:54
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Cambiar color de celdas

Creo que lo correcto es:
Código:
$color = (is_int($fila / 2)) ? '#CCCCFF': '#00FFCC';
$variable = (si se cumple condicion) ? "asignas este valor" : "si no, asignas este otro";

Esa linea es como if - then - else integrado, donde lo que sigue al signo ? corresponde al then y lo que sigue a los dos puntos : corresponde al else.
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 13/12/2008, 19:18
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Cambiar color de celdas

Tambien en vez de restar y verificar que el numero es un entero, puedes usar el MODULO (% en PHP).

Código PHP:
<?php
if($numero%== 0//si el MODULO de un numero entre 2 es CERO, quiere decir que dicho numero es multiplo de 2. El modulo de una division es el RESTO.
?>
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 11:25.