affichage couleur selon une date[résolu] [php] - PHP - Programmation
Marsh Posté le 22-07-2004 à 11:30:38
tu fais une feuille de style. avec plusieurs classe de couleur et tu appelle la bonne classe dans ton code
if (ma date est dépassée)
echo "<td class='rouge'>$date</td>" ;
else
echo "<td class='rouge'>$date</td>"
Marsh Posté le 22-07-2004 à 11:33:00
JagStang a écrit : tu fais une feuille de style. avec plusieurs classe de couleur et tu appelle la bonne classe dans ton code |
euh ....
vert par exemple ...
Marsh Posté le 22-07-2004 à 11:34:15
lol pardon copier/coller
Marsh Posté le 22-07-2004 à 11:42:20
JagStang a écrit : tu fais une feuille de style. avec plusieurs classe de couleur et tu appelle la bonne classe dans ton code |
merci j'v testé ca ...
je voulais dire j'v testé ca
Citation : if (ma date est dépassée) |
Marsh Posté le 22-07-2004 à 11:55:23
[mode enculons les mouches on]
Mieux vaut faire une classe "date_ok" et une classe "date_depassee".
Imaginons que dans mille ans, le rouge signifie culturellement "ok" et le rouge "danger" : les classes "rouge" et "vert" seront des contre-sens.
Faut voir à long terme
[mode enculons les mouches off]
Marsh Posté le 22-07-2004 à 12:57:53
ça, pour de l'enculage de mouche...
Mais bon tu as raison. mais c'était pour qu'il comprenne ce que devaient représenter ces classes
Marsh Posté le 22-07-2004 à 15:39:18
bon j'essaye mais j'y arrive po...
j'vous met mon bout de code
Code :
|
...j'arrive pas a faire fonctionner ca, j'pense que ca viens de ma mauvaise manipulation des dates (ou plutot du php ), ca s'affiche tout de la meme classe, pareil si j'inverse le '<' mais ce coup ci c l'autre classe.
Marsh Posté le 22-07-2004 à 15:58:54
if('renouvellement' < $date)
tu compares une chaine de caractères à une date. c'est comme comparer un camion et une bouteille.
Marsh Posté le 22-07-2004 à 16:00:46
te sens pas obligé de faire un copier coller de tout. y'a plus propre à faire...
Marsh Posté le 22-07-2004 à 16:07:24
...
'renouvellement' est un champs de ma bd de type DATE et je vois pas comment le déclarer en tant que tel
Marsh Posté le 22-07-2004 à 16:14:14
JagStang a écrit : te sens pas obligé de faire un copier coller de tout. y'a plus propre à faire... |
oui, vu que y'a que la class de mon table qui change j'aurais pu me contenter de 'doubler' juste cette partie...c ca?
Marsh Posté le 22-07-2004 à 16:14:21
Ben déjà $row['renouvellement'].
Après faut voir comment tes dates sont stockées dans ta base pour pouvoir imaginer une manière de faire une comparaison !
Marsh Posté le 22-07-2004 à 16:20:29
deliriumtremens a écrit : Ben déjà $row['renouvellement']. |
put1...j'suis trop ***. faut dire que la g pas la clim et y fait 32 ds mon bureau (g l'excuse facile )
...c bon ca marche, merci a tous pour votre aide, j'fais un ptit bout de code plus propre et je le post en editant le titre.
Marsh Posté le 22-07-2004 à 16:34:12
azylum01 a écrit : oui, vu que y'a que la class de mon table qui change j'aurais pu me contenter de 'doubler' juste cette partie...c ca? |
tout à fait
Marsh Posté le 22-07-2004 à 16:52:08
Bon ben voila un bout de code qui marche...p't etre qu'un jour ca servira à un debutant en detresse
Code :
|
voilou et merci
Marsh Posté le 22-07-2004 à 16:54:34
Tu fais une table d'une par enregistrement. il y a surement moyen de faire mieux (genre 1 ligne par exemple)
Marsh Posté le 22-07-2004 à 16:56:58
oui. par exemple
if($row[renouvellement] < $date)
$class = "result" ;
else
$class = "result2" ;
echo "<table bgcolor=\"#FFFFFF\" cellspacing=\"0\" cellpadding=\"10\" width=\"600\" class='".$class."' border=\"0\">"."\n";
Marsh Posté le 22-07-2004 à 17:00:05
C'était pas cela ma remarque. Il fait
<table><tr><td>...</td></tr></table>
<table><tr><td>...</td></tr></table>
<table><tr><td>...</td></tr></table> ...
plutôt que
<table>
<tr><td>...</td></tr>
<tr><td>...</td></tr>
<tr><td>...</td></tr>
...
</table>
Marsh Posté le 22-07-2004 à 17:04:31
oui c'est juste.
Marsh Posté le 22-07-2004 à 17:22:43
jagstang > oui c vrai ta methode me^plait mieux et offr'e a mon avis plus de possibilté pour la suite.
T509> tu veux dire finir plutot comme ca
echo "<td align=\"center\">".$row['xxxxx']."</td>";
echo "</tr>";
}
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_close();
echo "</table>";
Marsh Posté le 22-07-2004 à 17:25:36
<table> et </table> en dehors de ta boucle while
Marsh Posté le 22-07-2004 à 17:35:18
en fait j'ai les infos qui s'affiche dans des tableau de couleur de fond differente selon $class...mais la comme tu me dit du coup je suis marron pour ce systeme d'affichage, j'suis obligé de refaire les class de mes td, mais avec un cellpadding=10 j'pourrais jamais avoir ce type d'affichage...nan ?
Marsh Posté le 22-07-2004 à 17:51:55
Tant que tu y est, je te conseilles un affichage "tabless" => http://mammouthland.free.fr/cours/css/
Mais bon, tu peux obtenir ton affichage en travaillant sur les td et les tr
Marsh Posté le 22-07-2004 à 19:31:39
ok merci pour ton lien T509
...mais tu peux m'expliquer pq tout ca? c vraiment mauvais mon code ecrit comme ca?
Marsh Posté le 22-07-2004 à 19:32:34
c'est pas mauvais, c'était la façon de faire en 1997. faut évoluer quoi
Marsh Posté le 22-07-2004 à 19:36:15
oui c'est pas facile. moi j'ai de la peine à lacher mes tableaux. mais y'avait que ça avant alors...
Marsh Posté le 22-07-2004 à 11:18:46
bonjour
g une BD contenant des infos sur des adherents.
j'aimerais arriver a faire en sorte que quand la date d'adhesion est depassé le fond du tableau soit d'une autre couleur que les autres.
g pensé à plusieurs feuille de style comme ds le cas d'un 'site multicouleur' mais j'crois pas que se soit la bonne solution
...en fait je vois pas trop comment faire
Message édité par azylum01 le 22-07-2004 à 16:55:51