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.