Alterné les couleurs dans un tableau en PHP

Bon jour,

J’ai chercher sur internet des codes me permattant d’alterné les couleurs de chaque ligne d’un tableau afin d’amélioré ca lecture, etant novice dans ce domaine je ne comprend vraiment pas comment cela fonctionne … est ce que quelqu’un serait m’eclairé sur le sujet ?

voilà ci-dessous mon tableau (pour le moment il y à qu’une couleur qui est spécifié)


// si on a récupéré un résultat on l'affiche.
if($total) {
    // debut du tableau
    echo '<table align=center bgcolor="#FFFFFF">'."\n";
	   
		// première ligne on affiche les titres dans des colonnes
        echo '<tr>';
        echo '<td bgcolor="#669999"><b><u>Societe</u></b></td>';
        echo '<td bgcolor="#669999"><b><u>Téléphone</u></b></td>';
        echo '<td bgcolor="#669999"><b><u>E-mail</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Modèle Routeur</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Adresse Ip Internet</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Adresse Ip Local</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Identifiant</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Mot de Passe</u></b></td>';
        echo '</tr>'."\n";
    
	// lecture et affichage des résultats, 1 résultat par ligne.    
    while($row = mysql_fetch_array($result)) {
        echo '<tr>';
        echo '<td bgcolor="#CCCCCC">'.$row["societe"].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row["tel"].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row["email"].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row["model"].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row["ip_wan"].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row["ip_lan"].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row["login"].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row["password"].'</td>';
        echo '</tr>'."\n";
    }
    echo '</table>'."\n";
    // fin du tableau.

ReLiK
Edité le 23/08/2007 à 15:22

Hé bien par exemple :

    $i = 0;
  while($row = mysql_fetch_array($result)) {
    // ++$i <=> $i = $i + 1; 
    $color = ++$i % 2 ? '#CCCCCC':'#DDDDDD';
?>
  <tr>
    <td bgcolor="<?php echo $color; ?>"><?php echo $row["societe"]; ?></td>
    <td bgcolor="<?php echo $color; ?>"><?php echo $row["tel"]; ?></td>
    <td bgcolor="<?php echo $color; ?>"><?php echo $row["email"]; ?></td>
    <td bgcolor="<?php echo $color; ?>"><?php echo $row["model"]; ?></td>
    <td bgcolor="<?php echo $color; ?>"><?php echo $row["ip_wan"]; ?></td>
    <td bgcolor="<?php echo $color; ?>"><?php echo $row["ip_lan"]; ?></td>
    <td bgcolor="<?php echo $color; ?>"><?php echo $row["login"]; ?></td>
    <td bgcolor="<?php echo $color; ?>"><?php echo $row["password"]; ?></td>
  </tr>
<?php
    }

J’ai pas trop le temps d’expliquer les autres modifications, mais c’est surtout pour des raisons de performances.

Avec une variable dans ta boucle while.


couleur = 0;
while(...){
  if(couleur == 0){
     couleur = 1;
     bg = "CCCCCC";
  }
  else{
    couleur = 0;
    bg = "888888";
   }
 echo '<tr>';  echo '<td bgcolor=bg>'.$row["societe"].'</td>';
 etc...
}

ps: j’ai mis une autre couleur au hasard, et pour la variable bg, je ne sais pas si c’est bon (stro vieux la dernière fois où g fais du php :wink: )

Edit, en effet, il manque les $ :o
Edité le 23/08/2007 à 15:43

Ou alors avec deux styles CSS : color0 et color1 par exemple, tu mets

<?php for($i=0; $i<$nb_res; ++$i): ?> <?php endfor; ?>
Youpi

Merci beaucoup pour ce bou de code cela fonctionne Nickel …

Trois pour le prix d’un en plus :slight_smile:

Si tu pouvais ajouter [Résolu] dans le titre de ton sujet, cela serait bien, merci :slight_smile: