Changement de couleur
Résolu
manureva2b
-
manureva2b -
manureva2b -
Bonjour,
Cela fait plusieurs jours que je cherche en lisant différent forum mais cela ne marche pas pour mon cas (ou plus tôt je n'arrive pas à les adapter).
Voici mon problème:
je fais une requête sql et le résultat arrive dans un tableau (jusque là OK, hors je souhaiterais qu'une ligne sur deux soit colorée en vert et l'autre en blanc.
voici mon code :
Par avance merci
Cela fait plusieurs jours que je cherche en lisant différent forum mais cela ne marche pas pour mon cas (ou plus tôt je n'arrive pas à les adapter).
Voici mon problème:
je fais une requête sql et le résultat arrive dans un tableau (jusque là OK, hors je souhaiterais qu'une ligne sur deux soit colorée en vert et l'autre en blanc.
voici mon code :
connexion à la base ... $sql = "SELECT ville,DATE_FORMAT(date, '%d-%m-%Y') as datefr,nom,descriptif,adresse,code_postal,heure,contact FROM T_evenement WHERE ville = '".$ville."' AND date >= CURDATE() ORDER BY date ASC"; $query = mysql_query($sql) or die( 'Erreur' ); $result = mysql_query($query); // Recuperation des resultats while ( $list = mysql_fetch_array( $query )) { $Ville = $list[0]; $Datefr = $list[1]; $Nom = $list[2]; $Descriptif = $list[3]; $Adresse = $list[4]; $Code_postal = $list[5]; $Heure = $list[6]; $Contact = $list[7]; echo "<tr>\n <td align=\"center\">$Datefr</td>\n <td align=\"center\">$Nom</a></td>\n <td>$Descriptif</td>\n <td>$Adresse</a></td>\n <td align=\"center\">$Code_postal</td>\n <td align=\"center\">$Ville</td>\n <td align=\"center\">$Heure</td>\n <td>$Contact</td>\n </tr>\n"; } // Deconnexion de la base de donnees mysql_close($idSql); } ?>
Par avance merci
A voir également:
- Changement de couleur
- Changer de dns - Guide
- Excel cellule couleur si condition texte - Guide
- Boite a couleur - Télécharger - Divers Photo & Graphisme
- Changer la couleur de la barre des taches - Guide
- Somme si couleur - Guide
4 réponses
Salut.
Essaye avec ça :
En gros, tu places une variable $i (ou autre) qui te serviras de compteur. A chaque tour de boucle, tu incrémentes la variable de 1 ( $i++ ).
Ensuite, tu vérifie que le compteur est paire ou pas.
Pour ça, tu peux utiliser le modulo ( % ), qui permet de récupérer le reste d'une division. Si $i % 2 donne 0, c'est que la ligne est paire.
( https://www.php.net/manual/fr/language.operators.arithmetic.php )
Suivant ce que retourne le modulo, tu appliques la classe "even" ou "odd" à la ligne à passer en couleur.
Après, il ne reste plus qu'à appliquer un peu de CSS sur les classes.
Sinon, il y a une méthode beaucoup plus simple, c'est d'utiliser le pseudo sélecteur css3 :nth-child.
( http://www.w3.org/Style/Examples/007/evenodd )
Le seul problème, c'est que ce sélecteur n'est pas reconnu par les anciens navigateurs ( IE < 9 par exemple ).
En espérant avoir pu t'éclairer un peu.
Essaye avec ça :
<style type="text/css"> .even { background: white; } .odd { background: green; } </style> <?php $sql = "SELECT ville,DATE_FORMAT(date, '%d-%m-%Y') as datefr,nom,descriptif,adresse,code_postal,heure,contact FROM T_evenement WHERE ville = '" . $ville . "' AND date >= CURDATE() ORDER BY date ASC"; $query = mysql_query($sql) or die('Erreur'); $result = mysql_query($query); $i = 0; // Recuperation des resultats while ($list = mysql_fetch_array($query)) { $Ville = $list[0]; $Datefr = $list[1]; $Nom = $list[2]; $Descriptif = $list[3]; $Adresse = $list[4]; $Code_postal = $list[5]; $Heure = $list[6]; $Contact = $list[7]; echo "<tr class='" . ( ($i % 2 == 0) ? 'even' : 'odd' ) . "'>\n <td align=\"center\">$Datefr</td>\n <td align=\"center\">$Nom</a></td>\n <td>$Descriptif</td>\n <td>$Adresse</a></td>\n <td align=\"center\">$Code_postal</td>\n <td align=\"center\">$Ville</td>\n <td align=\"center\">$Heure</td>\n <td>$Contact</td>\n </tr>\n"; $i++; } ?>
En gros, tu places une variable $i (ou autre) qui te serviras de compteur. A chaque tour de boucle, tu incrémentes la variable de 1 ( $i++ ).
Ensuite, tu vérifie que le compteur est paire ou pas.
Pour ça, tu peux utiliser le modulo ( % ), qui permet de récupérer le reste d'une division. Si $i % 2 donne 0, c'est que la ligne est paire.
( https://www.php.net/manual/fr/language.operators.arithmetic.php )
Suivant ce que retourne le modulo, tu appliques la classe "even" ou "odd" à la ligne à passer en couleur.
Après, il ne reste plus qu'à appliquer un peu de CSS sur les classes.
Sinon, il y a une méthode beaucoup plus simple, c'est d'utiliser le pseudo sélecteur css3 :nth-child.
( http://www.w3.org/Style/Examples/007/evenodd )
<style type="type/css"> tr:nth-child(even) {background: white;} tr:nth-child(odd) {background: green;} </style>
Le seul problème, c'est que ce sélecteur n'est pas reconnu par les anciens navigateurs ( IE < 9 par exemple ).
En espérant avoir pu t'éclairer un peu.
Bonsoir vincebzh
Merci beaucoup pour ton code et surtout tes explication, cela marche nikel.
bonne soirée.
Merci beaucoup pour ton code et surtout tes explication, cela marche nikel.
bonne soirée.
Bonjour vincebzh
Je me permet de reposer une petite question car sur mon site j'ai un formulaire afin de rentrer une date (qu'on retrouve dans le résultat de ma requete cf : code du dessus) et dans mon formulaire je suis obligé de l'écrire en date anglaise et cela n'est pas pratique du tout.
Comment puis je faire pour l'avoir en fr?
par avance merci
Je me permet de reposer une petite question car sur mon site j'ai un formulaire afin de rentrer une date (qu'on retrouve dans le résultat de ma requete cf : code du dessus) et dans mon formulaire je suis obligé de l'écrire en date anglaise et cela n'est pas pratique du tout.
Comment puis je faire pour l'avoir en fr?
par avance merci