Page 1 sur 1

condition if probleme couleur cellule tableau

Posté : 21 mars 2015, 07:44
par pao47
Bonjour,

j'ai un petit souci sur une partie de code (je suis débutant) : je voudrais que dans une cellule la couleur change lorsque le résultat de la soustraction de deux dates est supérieur ou inférieur à 183.

Pour le moment, quelque soit le résultat de la soustraction, j'obtiens du vert. (jamais le rouge...)

je ne vois pas mon erreur dans ce code :

Code : Tout sélectionner

print("<td align=center>"); $datediff=odbc_result($Resultatdocquali,"tdoc_date_diff"); $jour=substr($datediff,8,2); $mois=substr($datediff,5,2); $annee=substr($datediff,0,4); $date=$jour."/".$mois."/".$annee; print"<font size=2>"; echo $date; print"</font>"; print("</td>\n"); $datediff=odbc_result($Resultatdocquali,"tdoc_date_diff"); $jour3=substr($datediff,8,2); $mois3=substr($datediff,5,2); $annee3=substr($datediff+3,0,4); $date3=$jour3."/".$mois3."/".$annee3; if (($annee3*365+$mois3*30+$jour3)-($annee*365+$mois*30+$jour) < 183) {print("<td bgcolor=#FF0000>");} if (($annee3*365+$mois3*30+$jour3)-($annee*365+$mois*30+$jour) > 184) {print("<td bgcolor=#99CC00>");} print("<font size=2>"); echo $date3; print"</font >"; print("</td>\n");


Merci d'avance de votre aide.

paolino

Re: condition if probleme couleur cellule tableau

Posté : 21 mars 2015, 10:16
par sirakawa
1) Dans ces cas, il faut toujours vérifier les valeurs;
$datediff=odbc_result($Resultatdocquali,"tdoc_date_diff");

$jour3=substr($datediff,8,2);
// idem si $datediff te convient

$mois3=substr($datediff,5,2);
$annee3=substr($datediff+3,0,4);
$date3=$jour3."/".$mois3."/".$annee3;
print "$jour3 mois3 $annee3"; die();

2/ Extraire le calcul
$an3 = $annee3*365+$mois3*30+$jour3;
$an = ($annee*365+$mois*30+$jour;
et faire afficher ces valeurs
if (($an3 - $an) < 183)
{
print "<td bgcolor=#FF0000>" ;
}
else
{
print "<td bgcolor=#99CC00>";
}
a moins que ne veuilles rien pour 183 et 184

Re: condition if probleme couleur cellule tableau

Posté : 21 mars 2015, 10:59
par pao47
Bonjour sirakawa,

merci pour ton aide.

j'ai essayé ta proposition mais il ne prend en compte que la première condition à chaque fois. il n'y a pas de changement de couleur lorsque la condition n'est pas respecté (je n'ai peut être pas respecté ou compris l'ensemble de ce que tu as précisé) :

Code : Tout sélectionner

print("<td align=center>"); $datediff=odbc_result($Resultatdocquali,"tdoc_date_diff"); $jour=substr($datediff,8,2); $mois=substr($datediff,5,2); $annee=substr($datediff,0,4); $date=$jour."/".$mois."/".$annee; print"<font size=2>"; echo $date; print"</font>"; print("</td>\n"); $datediff=odbc_result($Resultatdocquali,"tdoc_date_diff"); $jour3=substr($datediff,8,2); $mois3=substr($datediff,5,2); $annee3=substr($datediff+3,0,4); $date3=$jour3."/".$mois3."/".$annee3; $an3 = ($annee3*365+$mois3*30+$jour3); $an = ($annee*365+$mois*30+$jour); if (($an3 - $an) < 0) { print "<td bgcolor=#99CC00>" ; } else { print "<td bgcolor=#FF0000>"; } print"<font size=2>"; echo $date3;
l'ensemble de mes cellules de la colonne sont rouges alors que normalement je devrais en avoir des vertes.

Re: condition if probleme couleur cellule tableau

Posté : 21 mars 2015, 11:01
par pao47
petite précision : je ne veux pas une selection que des rouges ou des verts mais que l'ensemble s'affiche.

Re: condition if probleme couleur cellule tableau

Posté : 21 mars 2015, 11:59
par sirakawa
Si tu commençais par faire afficher les valeurs AVANT le if, tu y verrais plus clair

Re: condition if probleme couleur cellule tableau

Posté : 21 mars 2015, 12:00
par sirakawa
En, particulier, j'aimerais savoir la valeur de $datediff..

Re: condition if probleme couleur cellule tableau

Posté : 21 mars 2015, 13:18
par pao47
$datediff est une date que je vais chercher dans une table de donnée excel du format : jj-mm-aa

Re: condition if probleme couleur cellule tableau

Posté : 21 mars 2015, 14:01
par sirakawa
IL est bien évident que le problème vient de la valeur de datediff
La valeur, pas le format:

Re: condition if probleme couleur cellule tableau

Posté : 21 mars 2015, 17:09
par pao47
j'ai fait un echo sur datediff, voila ce que j'obtiens pour aujourd'hui :

2015-03-21 00:00:00
soit pour
"$jour3=substr($datediff,8,2);" = 21
"$mois3=substr($datediff,5,2);" = 03
"$annee3=substr($datediff+3,0,4);" = 2015

je n'arrive toujours pas à cerner cette erreur.

Re: condition if probleme couleur cellule tableau

Posté : 21 mars 2015, 17:15
par pao47
Merci sirakawa ta solution fonctionne parfaitement. j'ai simplement vérifier mes variables et je ne devais pas sous-traire les partie "année"...mais "annéeconnexion"...

merci beaucoup de ton aide.