changement de couleur 1 ligne sur 2 ds un tableau [php] - Programmation
Marsh Posté le 31-07-2001 à 13:26:05
Tu declare une variable toto 
A chaque tour de boucle, tu verifies la valeur de toto et lui attribues la valeur contraire, en gros 
 
toto=0 
For i = 1 to 100 
  Si toto=0 ==> couleur=Rouge & toto=1 
  Si toto=1 ==> couleur=vert  & toto=0 
  Affiche <TR couleur> 
Next 
Marsh Posté le 31-07-2001 à 13:33:20
Plus simple 
 
un tableau  
 
couleur[]="#FFFFFF" 
couleur[]="#EEEEEE" 
 
dans la boucle une valeur s'incrémente 
 
et pour chaque ligne 
print("<TR BGCOLOR=" .$couleur[(toto%2)] ."">"; 
 
voilà quoi 
Marsh Posté le 31-07-2001 à 13:51:49
Oula, je comprend pas tout moi. 
 
pour dilyfe, c quoi ce For i = 1 to 100 ???? 
 
Pour lord ii, la je comprend que dalle. 
Je voit a quoi sert l'incrementation, mais je comprend pas le reste. 
Marsh Posté le 31-07-2001 à 13:56:28
Version avec explications : 
 
couleur[0]="#FFFFFF" //Ici on déclare le tableaux des couleurs 
couleur[1]="#EEEEEE" 
 
dans la boucle une valeur s'incrémente 
 
et pour chaque ligne 
print("<TR BGCOLOR=" .$couleur[($toto%2)] ."">"; 
 
$toto%2 : Donne le reste de la division entière de toto par 2. Ce qui fait pour 0,2 pour 1,1 pour 2,0 etc... 
 
Donc $couleur[($toto%2)] donne la valeur du tableau couleur[0] ou couleur[1] 
voilà quoi 
Marsh Posté le 31-07-2001 à 14:11:33
en fait, c cette variable toto qui me gene bcp, je sais quoi comment la definir.
Marsh Posté le 31-07-2001 à 14:14:25
Ebn php les variables ne se définissent pas. Et elles se typent suivant le contenu 
 
donc tu fais avant ta boucle $toto=0; 
 
et ensuit a chaque parcours de la boucle $toto++; 
Marsh Posté le 31-07-2001 à 14:26:01
Que fais tu là tu devrais pas etre au boulot
Marsh Posté le 31-07-2001 à 14:40:35
la je voie vraiment pas ce qui va pas. voila le script : 
 
<? 
$couleur[0]="#FFFFFF"; 
$couleur[1]="#000000"; 
$requete = "SELECT * FROM $table "; 
$resultat = mysql_query( $requete );  
$nb = mysql_numrows($resultat); 
 while ($row = mysql_fetch_array($resultat)) 
 { /* On parcoure les résultats de la requête */ 
   $tDeb = explode(" ", date("Y m j" ));  
   	$tFin = explode("-", $row['end_date']); 
   $elapse_time = (mktime (0,0,0,$tFin[1],$tFin[2],$tFin[0])-mktime(0,0,0,$tDeb[1], $tDeb[2], $tDeb[0]))/86400; 
 	if ( $elapse_time < "0" ) 
 	{ 
   $id_num = $row['id']; 
   for ($ligne=0; $ligne < 1; $ligne++){ 
echo "<table width=100% border=0 cellspacing=0 cellpadding=0> 
  <tr bgcolor=". $couleur[($ligne%2)] ."> 
    <td width=150>".$row['last_name']."</td> 
    <td>".$row['subject']."</td> 
    <td width=75><a href=#>view</a></td> 
    <td width=75><a href=#>refine</a></td> 
  </tr> 
</table>"; 
 	} 
 
Si vous pouviez me dire ce qui va pas, cela serait tres cool  
 
Marsh Posté le 31-07-2001 à 14:54:40
heu pour le for next ca representait ta boucle. Ici, ton 
while ($row = mysql_fetch_array($resultat)) 
 
Je connais pas PHP, c'etait juste un algo que je te donnais. 
 
Sinon comme ca je pense que le for ($ligne est de trop. 
Tu as oublié de declarer $toto=0; avant ton while et $toto++;  après le </table> 
 
Sans etre sur... 
Voila 
Marsh Posté le 31-07-2001 à 14:58:06
Déja qu'est ce qui s'affiche ?? 
 
Cette boucle for est bizarre, en fait je ferais ca comme ca 
$i=0; 
echo "<table width=100% border=0 cellspacing=0 cellpadding=0>";  
while ($row = mysql_fetch_array($resultat))  
{ /* On parcoure les résultats de la requête */  
  $tDeb = explode(" ", date("Y m j" ));   
  $tFin = explode("-", $row['end_date']);  
  $elapse_time = (mktime (0,0,0,$tFin[1],$tFin[2],$tFin[0])-mktime(0,0,0,$tDeb[1], $tDeb[2], $tDeb[0]))/86400;  
 if ( $elapse_time < "0" )  
 {  
  $id_num = $row['id'];  
  echo "<tr bgcolor=". $couleur[($i%2)] ."> "; 
  echo "<td width=150>".$row['last_name']."</td>";  
  echo "<td>".$row['subject']."</td> "; 
  echo "<td width=75><a href=#>view</a></td> "; 
  echo "<td width=75><a href=#>refine</a></td> "; 
  echo "</tr> "; 
  $i++; 
  } 
} 
echo "</table>"; 
Marsh Posté le 31-07-2001 à 13:18:50
Je voudrai savoir comment faire pour avoir un changement de couleur une ligne sur 2.
c ligne correspondent a des resultat donné par la base de donné SQL.
Comment faire ?
J'espere que vous aurez compriece que je voulais dire.