Foros del Web » Programando para Internet » PHP »

Tengo mi 1ºer problema con la rotación de colores!

Estas en el tema de Tengo mi 1ºer problema con la rotación de colores! en el foro de PHP en Foros del Web. Hola, este es mi primer mensaje y seguro que no el último. Y vengo para preguntaros si me podéis ayudar con el apasionante php. Tengo ...
  #1 (permalink)  
Antiguo 31/08/2003, 09:14
Avatar de Seia Cair  
Fecha de Ingreso: agosto-2003
Mensajes: 42
Antigüedad: 20 años, 6 meses
Puntos: 0
Busqueda Tengo mi 1ºer problema con la rotación de colores!

Hola, este es mi primer mensaje y seguro que no el último. Y vengo para preguntaros si me podéis ayudar con el apasionante php. Tengo un problema con la rotación de los colores del fondo de una tabla. El script de ejemplo lo recogí del FAQ de estos foros y para adoptarlo a mi base de datos MySQL del script original he echo lo siguiente:


Script original----->

Código PHP:
<table>
<?php
$color
='#FF0000';  // este es el primer color que queremos que aparezca
for($i=0;$i<20;$i++)
{
    echo 
"<tr bgcolor=\"$color\"><td>Hola</td></tr>";
  
$color=('#F0F0F0'==$color)?'#FF0000':'#F0F0F0';
// este es el operador ternario. Equivale a un IF-THEN-ELSE
// Es quivalente a
//  if ('#F0F0F0'==$color)
//  {
//    $color='#FF0000';
//  } else
//  {
//    $color='#F0F0F0';
//  }

}
?>
</table>

//me conecto a la base de datos, selecciono la tabla de noticias y imprimo el resultado del titulo de la noticia para que el fondo de todos los resultados se rotule, el resultado es que me aparece la misma noticia en una tabla de un color y luego en otra de otro color con la misma noticia y yo lo que quiero esque el siguiente registro me aparezca en la tabla que va a cambiar el color. Y no tengo ni idea de como modifico este script que parece a primera vista inutil, aunque ya se que el único inutil de aquí soy yo xD
// weno aki esta el sustituido donde le añado el row del titulo de la noticia

Código PHP:
<table>
<?php
$color
='#FF0000';  // este es el primer color que queremos que aparezca
for($i=0;$i<20;$i++)
{
    echo 
"<tr bgcolor=\"$color\"><td>$row[titulo_cabecera]</td></tr>";
  
$color=('#F0F0F0'==$color)?'#FF0000':'#F0F0F0';
// este es el operador ternario. Equivale a un IF-THEN-ELSE
// Es quivalente a
//  if ('#F0F0F0'==$color)
//  {
//    $color='#FF0000';
//  } else
//  {
//    $color='#F0F0F0';
//  }

}
?>
</table>

Me podrían ayudar y decir como debí de hacerlo? se lo agradeceré mucho (aunke no se con k...), en fin un saludo a todos

y a la espera de respuestas vuestras!
__________________
Tú no necesitas una razón para ayudar a alguien.
  #2 (permalink)  
Antiguo 31/08/2003, 09:20
Avatar de Seia Cair  
Fecha de Ingreso: agosto-2003
Mensajes: 42
Antigüedad: 20 años, 6 meses
Puntos: 0
weno añadir tb que los resultados aparecen en un total de 20 tablas por cada registro. :\\\\
__________________
Tú no necesitas una razón para ayudar a alguien.
  #3 (permalink)  
Antiguo 31/08/2003, 13:59
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Bueno, en la FAQ era un ejemplo de como alternar los colores en 20 filas de una tabla.

El "concepto" es que dentro de tu bucle que muestra cada registro, debes meter el codigo de dentro del for de la FAQ. O dicho de otra forma, sustituyes el for por el bucle que usas.

Como comentas que usas MySQL, el codogo te tendria que quedar algo asi:
Código PHP:
<table>

<?php
$link
=mysql_connect();  // te conectas
mysql_select_db(); // seleccionas la bd
$consulta="SELECT ..."// tu consulta
$result=mysql_query($consulta,$link) or die(mysql_error()); // ejecutas la consulta

$color='#FF0000';  // este es el primer color que queremos que aparezca

while($row=mysql_fetch_array($result))

{

    echo 
"<tr bgcolor=\"$color\"><td>$row[titulo_cabecera]</td></tr>";

  
$color=('#F0F0F0'==$color)?'#FF0000':'#F0F0F0';

// este es el operador ternario. Equivale a un IF-THEN-ELSE

// Es quivalente a

//  if ('#F0F0F0'==$color)

//  {

//    $color='#FF0000';

//  } else

//  {

//    $color='#F0F0F0';

//  }



}

?>

</table>
Como ves, simplemente he sustituido el for del codigo de la FAQ por el while tipico de recorrer los resultados.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 31/08/2003, 18:09
Avatar de Seia Cair  
Fecha de Ingreso: agosto-2003
Mensajes: 42
Antigüedad: 20 años, 6 meses
Puntos: 0
eres un genio! gracias!

tb acabo de estrujarme la cabeza y la otra forma es usando los else si no me equivoco.
quedaría de la siguiente forma->

Código PHP:
<?php

if ($colorfila==0){
       
$color"#E6EEF6";
       
$colorfila=1;
    }else{
       
$color="#F0F0F0";
       
$colorfila=0;
    }
{
  
$indice++;
  echo 
"<td width='6%'><p align='center'><img src='$row[plataforma_img]' align='absmiddle' border='0'></p></td><td bgcolor=\"$color\">
        <a href='noticia_lectura.php?id=$row[ID]'>$row[titulo_cabecera]...</a>&nbsp-&nbsp$row[fecha]</td></tr>"
;
}
?>
Gracias otra vez por todo!
__________________
Tú no necesitas una razón para ayudar a alguien.
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:15.