Modulo php

[Résolu/Fermé]
Signaler
Messages postés
358
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
16 juillet 2016
-
Messages postés
188
Date d'inscription
vendredi 14 janvier 2011
Statut
Membre
Dernière intervention
26 février 2015
-
Bonjour,

Voila j'expose mon soucis, je souhaite mettre en place un script modulo pour alterné les couleurs des lignes d'un tableau ou sont afficher les résultats d'une table sql

<?php
    for ($i=1; $i<= 10; $i++) {
    echo "$i:";
    if ($i%2) echo "impair "; else echo "pair ";
    }
    ?>


Pouvez vous me dire ou mettre ce code pour qu'il fonctionne ?
A voir également:

4 réponses

Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
892
<?php
    for ($i=1; $i<= 10; $i++) {
    echo "$i:";
    if ($i % 2 != 0) echo "impair "; else echo "pair ";
    }
    ?>


par ce que $i % 2 te donne le reste de l'opération modulo , donc si = à 0 c'est pair, si !=0 c'est impair
10
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
188
Date d'inscription
vendredi 14 janvier 2011
Statut
Membre
Dernière intervention
26 février 2015
26
=) Merci !
Plus simple :
$row=($row=='row1')?'row2':'row1';
<div class="<?php echo $row; ?>">
Bien que le sujet soit ancien, il est en première place sur google avec les mots clé "module php"

J'en profite donc pour vous proposer ma version de réponse :

<?php

$data = [réponse sql] // remplacez par le résulat sql ! :p

foreach ( $data as $row ) {

?>

<div class="<?php echo ( $i++%2 == 0 ) ? 'row1' : 'row2'; ?>">
<?php echo $row->content; ?>
</div>

<?php

}

?>


Comme vous pouvez le voir, tout se passe ici via l'opérateur ternaire :

<?php echo ( $i++%2 == 0 ) ? 'row1' : 'row2'; ?>

Ici on déclare $i directement dans la vérification. Au final on évite de déclarer un $i++; dans un coin du foreach, on évite le for, ou dans le cas d'un nombre de résultat dynamique il faudra obtenir le nombre de résultat pour définir la limite du for. Et puis ça a plus de gueule :D

Pour ceux qui ne savent pas comment marche l'opérateur ternaire lisez ceci :

L'opérateur ternaire c'est cette synthaxe : () ? : ;

On peu l'utiliser aussi bien avec un if qu'un echo, ou une variable (et d'autres choses que je n'utilise pas ? :p).

par exemple

$var = ( $i == 1 ) ? 0 : 1 ;
if ( $var == 1 ) ? echo 'foo' : echo 'bar' ;

bref ça marche comme une sorte de if else réduit.

echo ( vérification ) ? on affiche ça si c'est vrai : sinon on affiche ça ;

et voila l'équivalant en if else :

if ( vérif ) {
on affiche ça si c'est vrai
}
else {
sinon on affiche ça
}


bref voila ma solution :p

allez a+ !

http://www.e-devblog.com
Messages postés
358
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
16 juillet 2016
44
merci pour l'explication