Boucle while avec un changement simultané

Résolu/Fermé
wildchildforlife Messages postés 74 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 23 juillet 2011 - 4 mars 2010 à 11:26
wildchildforlife Messages postés 74 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 23 juillet 2011 - 4 mars 2010 à 11:42
Bonjour,
Je voudrai realiser une boucle while, avec un changement simultané de 2 couleurs de fond d'un tableau !

Mon code est simple le voici :

while($resultats = mysql_fetch_array($selection_recherche) ) //boucle affichant les résultats
{

?>


<tr bgcolor="DANS CETTE PARTIE JE VEUX QUE MA BOUCLE CHANGE A CHAQUE FOIS DE COULEURS, PAR EXEMPLE RESULTAT NUM 1 ELLE AFFICHE "#000000" ......RESULTAT NUM 2 ELLE AFFICHE "#141414".....RESULTAT NUM 3 ELLE REAFFICHE ""#000000" ....AINSI DE SUITE " >
<td height="23"><?php echo '<center>' . $resultats['date'] . '</center>' ; ?></td>

<td ><?php echo '<center>' . $resultats['categorie'] . '</center>' ; ?></td>
<td ><?php echo '<strong>' . $resultats['nom'] . '</strong>' ; ?></td>
<td><?php echo '<center>' . $resultats['taille'] . '</center>' ; ?></td>
<td><?php echo '<center>' . $resultats['seeders'] . '</center>' ; ?></td>
<td><?php echo '<center>' . $resultats['leechers'] . '</center>' ; ?></td>
</tr>




<?php

Ne vous inquiétez pas pour les balises manquantes parceque je n'ai copié que le bout de code ou je bloquais, merci de bien vouloir m'aider !!
A voir également:

3 réponses

Jean-François Pillou Messages postés 18707 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 63 267
4 mars 2010 à 11:28
Voilà la solution :

while($resultats = mysql_fetch_array($selection_recherche) ) //boucle affichant les résultats
{

?>

<tr bgcolor="<?php if($i++%2) echo '#141414'; else echo '#000000'; ?>">
<td height="23"><?php echo '<center>' . $resultats['date'] . '</center>' ; ?></td>

<td ><?php echo '<center>' . $resultats['categorie'] . '</center>' ; ?></td>
<td ><?php echo '<strong>' . $resultats['nom'] . '</strong>' ; ?></td>
<td><?php echo '<center>' . $resultats['taille'] . '</center>' ; ?></td>
<td><?php echo '<center>' . $resultats['seeders'] . '</center>' ; ?></td>
<td><?php echo '<center>' . $resultats['leechers'] . '</center>' ; ?></td>
</tr>

<?php
}
0
wildchildforlife Messages postés 74 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 23 juillet 2011 2
4 mars 2010 à 11:36
Ohhh merciii chere jeff, c'est genial de ta part =) je vais valider resolu, mais des explications s'imposent >.< tu voudrai bien developpé un peu et m'expliquer ton bout de code ??
Voila ce que j'ai compris :

tu as mis une incrementation a la variable i oui mais.....

Voila ce qui m'echappe :

Tu n'as même declaré la variable avant de l'incrementé :s, et le %2, veut dire ?

Merci bcp pour ton aide et pour ton explication =) !!
0
Jean-François Pillou Messages postés 18707 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 63 267
4 mars 2010 à 11:40
J'aurais effectivement dû déclarer la variable plus haut, avant le while en mettant $i=0;

Pour les explications : $i++ incrémente effectivement $i, donc à la première itération il vaut 0, puis 1, puis 2, puis 3, etc.

%2 signifie modulo 2, c'est un opérateur qui donne le reste de la division entière par deux. En gros, ça donne 0 si le chiffre est pair et 1 si le chiffre est impair.

Ainsi quand $i est impair, le test vaut 1, donc "true", dans le cas contraire il vaut "false" :
finalement, quant $i est impair on affiche #141414, dans le cas contraire on affiche #000000
0
wildchildforlife Messages postés 74 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 23 juillet 2011 2
4 mars 2010 à 11:42
Bonjour,

*_* ......MERCI !
0