ça sent l'autocasting vu les valeurs que tu manipules :
tu peux essayer avec ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $color = ((null === $prev) || ($prev == $row['Col19'])) ? '#CCCCCC' : '#669999';
ça sent l'autocasting vu les valeurs que tu manipules :
tu peux essayer avec ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $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 Php : Sélectionner tout - Visualiser dans une fenêtre à part $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 php : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager