ça sent l'autocasting vu les valeurs que tu manipules :
tu peux essayer avec ça :
Code:$color = ((null === $prev) || ($prev == $row['Col19'])) ? '#CCCCCC' : '#669999';
Version imprimable
ça sent l'autocasting vu les valeurs que tu manipules :
tu peux essayer avec ça :
Code:$color = ((null === $prev) || ($prev == $row['Col19'])) ? '#CCCCCC' : '#669999';
Le problème, c'est que cet algo fonctionne comme cela :
1. Col19 est différente de null -> Couleur 1
2. Si Col19[i-1] = Col19[i] -> Couleur 2
Si Col19[i-1]<>Col19[i] ->Couleur 1
Et c'est là que se situe le problème ... Cet algo fait l'inverse, il y a un truc qui m'(nous) échappe !
heu non...
le code donne par rawsrc :
concretement se lit :Code:$color = ((null === $prev) || ($prev == $row['Col19'])) ? '#CCCCCC' : '#669999';
si [donnee n-1] n'est pas definie OU
si [donnee n-1] et la meme que [donnee n]
=> alors, la couleur est #CCCCCC
sinon ([donnee n-1] differente de [donnee n] )
la couleur est #669999
j'ai pas teste, mais ca m'a l'air d'etre ce que tu attendais...
sinon, rien ne t'empeche de modifier le code... changer un == en != par exemple
[edit]
ah mais non... tu dois avoir raison...
exemple : 1,2,2,3...
1 : changement de couleur car n-1 null (couleur CCCCCC)
2 : changement de couleur car n-1 != n (couleur 669999)
2 : meme couleur (couleur 669999)
3 : n-1 != n donc couleur = 669999 (couleur 669999)
je pense qu'il faudrait peut-etre faire avec le fameux compteur (hahaha)
genre :
Code:
1
2
3
4
5
6 $prev = null;$compteur=0; if($prev != $row['Col19']) { $compteur++; $prev = $row['Col19']; } $couleur= ($compeur % 2) ? "#CCCCCC" : "#669999";
Après dépieutage, je me suis effectivement raté dans l'affectation des couleurs. Mais étant étudiant, tu aurais pu corriger l'ancien que je suis ;)
Donc sans compteur, ni modulo, ceci devrait faire l'affaire :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 $prev = null ; $last_color = '#CCCCCC'; while($row = mysql_fetch_array($resultliai)) { if ((null === $prev) || ($prev == $row['Col19'])) { $color = $last_color; } else { $color = ($color === '#669999') ? '#CCCCCC' : '#669999'; $last_color = $color; } $total_color = ($row['Total'] > 1000) ? '#DC143C' : $color; $prev = $row['Col19']; if ($row['Total'] > 15) { echo <<<WEB <tr> <td bgcolor="$color">{$row['Col19']}</td> <td bgcolor="$color">{$row['SiteA']}</td> <td bgcolor="$color">{$row['SiteB']}</td> <td bgcolor="$color">{$row['PCG']}</td> <td bgcolor="$color">{$row['BoucleORS']}</td> <td bgcolor="$color">{$row['Routeur_Interface']}</td> <td bgcolor="$total_color">{$row['Total']}</td> </tr> WEB; } }
Merci beaucoup ! Entre temps j'avais trouvé qu'il fallait initier la valeur de la couleur mais il me manquait encore un truc.
RÉSOLU