[php] affichage couleur selon une date[résolu]

affichage couleur selon une date[résolu] [php] - PHP - Programmation

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
Reply

Marsh Posté le 22-07-2004 à 11:18:46   

Reply

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>"


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

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
 
if (ma date est dépassée)
    echo "<td class='rouge'>$date</td>" ;
else
    echo "<td class='vert'>$date</td>"


 
euh ....
vert par exemple  :ange: ...


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 22-07-2004 à 11:34:15    

lol pardon copier/coller :D


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

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
 
if (ma date est dépassée)
    echo "<td class='rouge'>$date</td>" ;
else
    echo "<td class='rouge'>$date</td>"


 
merci j'v testé ca  :) ...
 
je voulais dire j'v testé ca  

Citation :

if (ma date est dépassée)  
   echo "<td class='rouge'>$date</td>" ;  
else  
   echo "<td class='vert'>$date</td>"


 :D


Message édité par azylum01 le 22-07-2004 à 11:43:33
Reply

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]

Reply

Marsh Posté le 22-07-2004 à 12:57:53    

ça, pour de l'enculage de mouche... :sweat:
 
Mais bon tu as raison. mais c'était pour qu'il comprenne ce que devaient représenter ces classes [:spamafote]

Reply

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 :
  1. $select = 'SELECT * FROM professionnel ORDER BY societe';
  2. $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
  3. $total = mysql_num_rows($result);
  4. $date = date("Y-m-d" );
  5. if($total) {
  6.  while($row = mysql_fetch_array($result)) {
  7.    if('renouvellement' < $date){
  8.      echo "<table bgcolor=\"#FFFFFF\" cellspacing=\"0\" cellpadding=\"10\" width=\"600\" class=\"result2\" border=\"0\">"."\n";
  9.         echo "<tr>";
  10.  echo "<td align=\"center\" width=\"200\"><b><u>".$row['societe']."</u></b></td>";
  11.      echo "<td width=\"100\" align=\"center\">ref : ".$row['ref']."</td>";
  12.  echo "<td align=\"center\" width=\"150\">tèl :".$row['tel']." gsm :".$row['gsm']."</td>";
  13.  echo "<td align=\"center\" width=\"150\">fax :".$row['fax']."</td>";
  14.  echo "</tr>";
  15.  echo "<tr>";
  16.    echo "<td width=\"300\" colspan=\"4\" align=\"center\" class=\"italic\" align=\"left\"><b>(".$row[activite_true]." )</b></td>";
  17.   echo "</tr>";
  18.  echo "<tr>";
  19.  echo "<td align=\"center\">".$row['adresse']."</td>";
  20.  echo "<td align=\"center\">".$row['cp']."</td>";
  21.  echo "<td align=\"center\">".$row['ville']."</td>";
  22.  echo "<td align=\"center\">".$row['departement']."</td>";
  23.  echo"<tr>";
  24.  echo "<td align=\"center\">".$row['contact']."</td>";
  25.  echo "<td align=\"center\"><a href=\"mailto:".$row['email']."\" target=_blank class=\"lien2\">".$row['email']."</a></td>";
  26.  echo "<td align=\"center\"><a href=\"".$row['site']."\" target=_blank class=\"lien2\">".$row['site']."</a></td>";
  27.  echo "<td align=\"center\">".$row['dossier']."</td>";
  28.         echo "</tr>";
  29.  echo"<tr>";
  30.  echo "<td align=\"center\">".$row['referencement']."</td>";
  31.  echo "<td align=\"center\">".$row['renouvellement']."</td>";
  32.  echo "<td align=\"center\">".$row['echeancier']."</td>";
  33.  echo "<td align=\"center\">".$row['pub']."</td>";
  34.         echo "</tr>";
  35.      echo "</table>";
  36.  echo "<br><br>";
  37.  }
  38.    else {
  39.  echo "<table bgcolor=\"#FFFFFF\" cellspacing=\"0\" cellpadding=\"10\" width=\"600\" class=\"result\" border=\"0\">"."\n";
  40.         echo "<tr>";
  41.  echo "<td align=\"center\" width=\"200\"><b><u>".$row['societe']."</u></b></td>";
  42.      echo "<td width=\"100\" align=\"center\">ref : ".$row['ref']."</td>";
  43.  echo "<td align=\"center\" width=\"150\">tèl :".$row['tel']." gsm :".$row['gsm']."</td>";
  44.  echo "<td align=\"center\" width=\"150\">fax :".$row['fax']."</td>";
  45.  echo "</tr>";
  46.  echo "<tr>";
  47.    echo "<td width=\"300\" colspan=\"4\" align=\"center\" class=\"italic\" align=\"left\"><b>(".$row[activite_true]." )</b></td>";
  48.   echo "</tr>";
  49.  echo "<tr>";
  50.  echo "<td align=\"center\">".$row['adresse']."</td>";
  51.  echo "<td align=\"center\">".$row['cp']."</td>";
  52.  echo "<td align=\"center\">".$row['ville']."</td>";
  53.  echo "<td align=\"center\">".$row['departement']."</td>";
  54.  echo"<tr>";
  55.  echo "<td align=\"center\">".$row['contact']."</td>";
  56.  echo "<td align=\"center\"><a href=\"mailto:".$row['email']."\" target=_blank class=\"lien2\">".$row['email']."</a></td>";
  57.  echo "<td align=\"center\"><a href=\"".$row['site']."\" target=_blank class=\"lien2\">".$row['site']."</a></td>";
  58.  echo "<td align=\"center\">".$row['dossier']."</td>";
  59.         echo "</tr>";
  60.  echo"<tr>";
  61.  echo "<td align=\"center\">".$row['referencement']."</td>";
  62.  echo "<td align=\"center\">".$row['renouvellement']."</td>";
  63.  echo "<td align=\"center\">".$row['echeancier']."</td>";
  64.  echo "<td align=\"center\">".$row['pub']."</td>";
  65.         echo "</tr>";
  66.      echo "</table>";
  67.  echo "<br><br>";
  68.  }
  69. }
  70. }
  71. else echo 'Pas d\'enregistrements dans cette table...';
  72. mysql_close();
  73. ?>
  74. </body>


 
...j'arrive pas a faire fonctionner ca, j'pense que ca viens de ma mauvaise manipulation des dates (ou plutot du php:D ), ca s'affiche tout de la meme classe, pareil si j'inverse le '<' mais ce coup ci c l'autre classe.


Message édité par azylum01 le 22-07-2004 à 15:40:57
Reply

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.


Message édité par T509 le 22-07-2004 à 15:59:22

---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

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...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 22-07-2004 à 16:00:46   

Reply

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

Reply

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?

Reply

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 !
 

Reply

Marsh Posté le 22-07-2004 à 16:20:29    

deliriumtremens a écrit :

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 !


 
put1...j'suis trop ***. faut dire que la g pas la clim et y fait 32 ds mon bureau (g l'excuse facile :D  )
 
...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.
 :jap:

Reply

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


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

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 :
  1. $select = 'SELECT * FROM professionnel ORDER BY societe';
  2. $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
  3. $total = mysql_num_rows($result);
  4. $date = date("Y-m-d" );
  5. if($total) {
  6.  while($row = mysql_fetch_array($result)) {
  7.   if($row[renouvellement] < $date){
  8.      echo "<table bgcolor=\"#FFFFFF\" cellspacing=\"0\" cellpadding=\"10\" width=\"600\" class=\"result2\" border=\"0\">"."\n";
  9.  }
  10.   else {
  11. echo "<table bgcolor=\"#FFFFFF\" cellspacing=\"0\" cellpadding=\"10\" width=\"600\" class=\"result\" border=\"0\">"."\n";
  12.  }
  13.         echo "<tr>";
  14. echo "<td align=\"center\" width=\"200\"><b><u>".$row['societe']."</u></b></td>";
  15.      echo "<td width=\"100\" align=\"center\">ref : ".$row['ref']."</td>";
  16. echo "<td align=\"center\" width=\"150\">tèl :".$row['tel']." gsm :".$row['gsm']."</td>";
  17. echo "<td align=\"center\" width=\"150\">fax :".$row['fax']."</td>";
  18. echo "</tr>";
  19.         echo "</table>";
  20.         echo "<br><br>";
  21.      }
  22. }
  23. else echo 'Pas d\'enregistrements dans cette table...';
  24. mysql_close();


 
voilou  :hello:  et merci


Message édité par azylum01 le 22-07-2004 à 16:52:43
Reply

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)


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

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";
       


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

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>


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 22-07-2004 à 17:04:31    

oui c'est juste. :D


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

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>";

Reply

Marsh Posté le 22-07-2004 à 17:25:36    

<table> et </table> en dehors de ta boucle while


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

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 ?


Message édité par azylum01 le 22-07-2004 à 17:52:25
Reply

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


Message édité par T509 le 22-07-2004 à 17:52:07

---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

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?

Reply

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 :D


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 22-07-2004 à 19:34:54    

:D  j'vais essayer d'evoluer alors
tks

Reply

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...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed