2 styles CSS sur une boucle en php

WRInaute discret
Salut,

je voudrais appliquer un style css unique sur les 3ers enregistrements d'une boucle puis un style différent pour les enregistrement suivants.

Savez vous si je dois utiliser 2 requêtes pour réaliser cela (une qui affiche les 3 ers, et une autre le reste), ou si il existe un moyen plus direct d'appliquer ce genre de condition à une requête unique ?
J'ai trouvé des exemples pour n'afficher que certains enregistrement mais pas pour ce que je cherche hélas.

merci d'avance,

Charles
 
WRInaute occasionnel
QQ chose du genre, ca convient pas ?

Code:
for ($i=0; $i < ... ; $i++)
{
     print "<td class=\"";
     if ($i < 3) { print "class1"; } else { print "class2"; }
     print "\">Le contenu de mon TD</td>";
}
 
WRInaute passionné
Histoire d'optimiser un peu plus :

Code:
for ($i=0; $i < 3; $i++)
{
     print "<td class=\"print "class1\">Le contenu de mon TD</td>";
}
for ($i=4; $i < $fin; $i++)
{
     print "<td class=\"print "class2\">Le contenu de mon TD</td>";
}

Ca évite des tests inutiles dans ta boucle.
 
WRInaute occasionnel
Attention à la valeur de fin dans ce dernier exemple. Il faut tester si elle dépasse 3 ou pas dans la première boucle :

Code:
$stop = min(3,$fin);
for ($i=0; $i<$stop; $i++)
{
    ...
}

et aussi à la valeur de démarrage de la seconde boucle :

Code:
for ($i=3; ...)
 
WRInaute discret
ah excellent merci beaucoup ! Merci aussi ltressens, j'ai bien noté ;-)
Question : on est obligé de donner un référent inférieur et supérieur à $i ? ou on peut juste le déclarer comme égal à "n", dans ce genre :
Merci!


Code:
for ($i=1; $i++) 
{ 
     print "<td class=\"print "class1\">Le contenu de mon TD</td>"; 
} 

for ($i=2; $i++) 
{ 
     print "<td class=\"print "class2\">Le contenu de mon TD</td>"; 
} 

for ($i=3; $i++) 
{ 
     print "<td class=\"print "class3\">Le contenu de mon TD</td>"; 
} 


for ($i=4; $i < $fin; $i++) 
{ 
     print "<td class=\"print "class2\">Le contenu de mon TD</td>"; 
}


(c'est juste pour savoir au cas où j'aurais besoin d'assigner un style CSS différent à chacun des 3ers) merci!
 
WRInaute passionné
Une boucle c'est pour faire plusieur traitement à la suite. Et ça a une syntaxe précise.

Donc non

Là y'a beaucoup plus simple :
Code:
    print "<td class=\"print "class1\">Le contenu de mon TD</td>"; 
     print "<td class=\"print "class2\">Le contenu de mon TD</td>"; 
     print "<td class=\"print "class3\">Le contenu de mon TD</td>"; 
for ($i=4; $i < $fin; $i++)
{
     print "<td class=\"print "class2\">Le contenu de mon TD</td>";
}

T'auras ptéte besoin de faire des tests pour voir si t'as bien 3 résultat & cie; mais t'auras pas besoin de t'embéter.
Et si tes classes se nomment vraiment classe1 classe2 classe3 :

Code:
for ($i=0; $i < 3; $i++)
{
     print "<td class=\"print "class$i\">Le contenu de mon TD</td>";
}
for ($i=4; $i < $fin; $i++)
{
     print "<td class=\"print "class2\">Le contenu de mon TD</td>";
}
 
WRInaute discret
ok compris, effectivement c'est plus simple ...j'en apprends tous les jours ici ;-) merci pour le tuyau !
 
Discussions similaires
Haut