Imprimir contenido tabla MySQL de forma alternada en PHP

Desde
18 Oct 2011
Mensajes
800
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Hola amigo
estoy en un pequeño proyecto y me quede estancado quiza en lo mas facil
espero puedan ayudarme
quiero que lo que imprima sea diferente al anterior
me explico mejor mostrando codigo
Luego de hacer la consulta a la base de datos
quiero que me imprima lo que se encuentra dentro de la tabla
PHP:
echo "
 <tr>
 <td>".$row["nombre"]."</td>
 <td>".$row["email"]."</td>
 </tr>
 ";

eso se repetira siempre
pero lo que yo quiero lograr hacer es :
la primera vez imprima normal tal y como esta
pero la segunda agregarle un atributo al valor <tr> quedando algo asi <tr class="sombreado">
luego que se repita tr normal y asi sucesivamente .
Espero puedan ayudarme
Gracias
 

Roodaka

Beta
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
8 Feb 2013
Mensajes
121
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
buenas! lo que podrías hacer es algo así:

PHP:
<?php 
// Mandamos la variable que determina el intercalado
$color = 1;
// Aquí pongo éste bucle, tu pon el tuyo
while($row = $query->fetchrow())
 {
  // Si $color es 1, muestra el 'sombreado' sino, no.
  echo (($color === 1) ? '<tr class="sombreado">' : '<tr>');
  echo $row['nombre'].'</td> 
 <td>'.$row['email'].'</td> 
 </tr>';
  // Seteamos el valor CONTRARIO de $color para que alterne los colores.
  if($color === 1) { $color = 0; }
  else { $color = 1; }
 }

No lo he probado, sinceramente.. pero debería funcionarte así :)

Un saludo!
 
Última edición:

Kabytes

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
3 Jul 2013
Mensajes
7
Te recomiendo una solución sencilla y que te permitira mantener el codigo PHP más limpio.

Si te entendi bien lo que quieres hacer es crear una tabla estilo zebra, una fila de un color y la siguiente de otro, esto facilita claramente la lectura de la tabla. Desde PHP hay varias formas de hacerlo, una muy valida es la que te propuso Roodaka. Yo hace tiempo tambien la hacia asi, pero luego decidi utilizar jQuery para hacerlo.

Para lograrlo con jQuery deberias escribir algo asi:

Insertar CODE, HTML o PHP:
function() {
 $("table tr:nth-child(even)").addClass("zebra");
 });

Luego en tus hojas de estilo agregas el .zebra, esto va a hacer que todas las filas impares se coloreen.

Y tu código PHP se mantiene más ordenado.

Es otra forma de hacerlo.
 
Última edición:
Arriba