Entrées paires et imparires

Entrées paires et imparires - PHP - Programmation

Marsh Posté le 29-05-2006 à 12:41:47    

Salut à tout le monde,
Je voudrais savoir s'il existe une fonction qui permet de savoir si une entrée de ma base de donnée est paire ou impaire. Par exemple pour les entrées 0, 2, 4, 6... la fonction me retournerait un résultat et pour les entrées 1, 3, 5, 7... un autre résultat. Je ne peux pas le faire avec un champs id car il arrive que je supprime des entrées donc on se retrouvera avec 2 champs paires (2 et 4 par exemple) succésivement. En fait c'est pour un scprit de news où je veux que la première news est une couleur 1, la deuxième une couleur 2, la troisième une couleur 1...etc. Donc il me faut un moyen pour que ça fonctionne une fois sur deux.  
 
J'espère que vous avez à peu près compris car j'admet que c'est très confu. Merci

Reply

Marsh Posté le 29-05-2006 à 12:41:47   

Reply

Marsh Posté le 29-05-2006 à 12:42:54    

C'est ultra la base de la base de la base de la base, et c'est le sujet de 5 126 789 541 331 747 562 012 745 368 125 356 140 002 480 368 015 articles sur le web...

Reply

Marsh Posté le 29-05-2006 à 13:04:27    

modulo

Reply

Marsh Posté le 29-05-2006 à 13:12:52    

civcortex's seal of approval [:bien]


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 29-05-2006 à 14:08:51    

Idée : ne pas laisser une demande sans réponse ni lien vers une réponse...
Je pars du principe que les math sont très loin derrière toi.
a modulo b renvoie le reste de la division de a par b (ex : 3 modulo 2 = 1; 4 modulo 2 =0 ).
si tu as une variable i que tu incrémentes dans une boucle, i modulo 2 vaut altérnativement soit 1 soit 0.
si tu concaténes le résultat de l'opération avec une chaîne de caractères tu peux obtenir une classe css, par exemple.

Code :
  1. for($i=0;$i<5;$i){
  2. echo 'classe_'.($i%2);
  3. }


te renvoie
classe_0
classe_1
classe_0
classe_1
classe_0

Message cité 1 fois
Message édité par wolftom_ le 29-05-2006 à 14:10:36
Reply

Marsh Posté le 29-05-2006 à 14:30:15    

wolftom_ a écrit :

Idée : ne pas laisser une demande sans réponse ni lien vers une réponse...


 
Idée: Une réponse avait déjà été donné...(2 en fait) et ça sert à rien de donner du code tout fait à quelqu'un. Il avait déjà l'indication qu'il fallait utiliser un modulo, c'était à priori une info suffisante pour chercher par soi même...

Reply

Marsh Posté le 29-05-2006 à 14:52:55    

Idée : pas besoin de diviser pour inverser une variable, y'a l'opérateur logique ! pour ça
 
$a = !$a;


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 29-05-2006 à 19:11:11    

je ne jette la pierre à personne mais le meilleur moyen de conserver de forum efficace, c'est encore de fournir des réponses efficaces et expliquées. Y a des jours où je suis chiant, et oui :)
 
>>Sh@rdar : pourquoi ne pas inverser la variable? Pour conserver l'idée avec une période de n éléments. Mais effectivement, c'est pas les manières de faire qui manquent pour créer une période : on peut faire $a = -$a, $a=(-1)^n, $a = cos(180*n), etc...

Reply

Marsh Posté le 29-05-2006 à 21:57:56    

Mais il n'existe pas une fonction qui permet de savoir si un nombre est paire ou impaire?

Reply

Marsh Posté le 29-05-2006 à 23:34:37    

tu divise par deux et tu vérifie si le chiffre est rond ou pas :)

Reply

Marsh Posté le 29-05-2006 à 23:34:37   

Reply

Marsh Posté le 30-05-2006 à 00:33:24    

pitcauvet a écrit :

Mais il n'existe pas une fonction qui permet de savoir si un nombre est paire ou impaire?


 
Pas plus qu'il n'y en a une pour les multiples de 3, de 5, de 7, de 11 etc.
 
J'imagine le langage qui s'amuse à avoir une fonction pour vérifier si un nombre est divisible par un nombre premier  :heink:  [:helldiver]

Reply

Marsh Posté le 30-05-2006 à 03:39:40    

naceroth a écrit :

Pas plus qu'il n'y en a une pour les multiples de 3, de 5, de 7, de 11 etc.
 
J'imagine le langage qui s'amuse à avoir une fonction pour vérifier si un nombre est divisible par un nombre premier  :heink:  [:helldiver]


 
Y'en a une, c'est le modulo...

Reply

Marsh Posté le 30-05-2006 à 17:11:15    

gooopil a écrit :

Y'en a une, c'est le modulo...


 
Le modulo retourne le reste d'une division, c'est pas exactement la même chose...

Reply

Marsh Posté le 30-05-2006 à 23:45:03    

Ah bon ? Une fonction qui te retourne zéro si un nombre est divisible par un autre c'est pas la même chose ?

Reply

Marsh Posté le 31-05-2006 à 00:07:13    

gooopil a écrit :

Ah bon ? Une fonction qui te retourne zéro si un nombre est divisible par un autre c'est pas la même chose ?


 
On ne se comprend pas, le sens de ma remarque sur une fonction pour la division possible par un entier, c'est une fonction qui retourne true ou false, exactement comme toutes fonctions is_null, is_bool etc, pas une fonction qui te demande encore un test derrière pour avoir ta réponse.
 
Et là, pas de bol, le modulo qui te retourne 0 si un nombre est divisible par un autre renvoit false sans le post-traitement :)
 
(bon, à la base c'était une vanne. Visiblement incomprise, pas grave, j'ai l'habitude :D)

Reply

Marsh Posté le 31-05-2006 à 09:00:27    

Ah ben si maintenant on se comprend :D
(Y'a de fortes chances que ça vienne de moi en plus, ça fait deux jours que j'ai pas dormi, je suis en train de finir mon mémoire...)
 

Reply

Marsh Posté le 31-05-2006 à 11:57:26    

gooopil a écrit :

Y'en a une, c'est le modulo...


 :o non, il y en a 2

Code :
  1. if($nb&1) {
  2. // impair
  3. } else {
  4. // pair
  5. }


Il y a un message sur le forum la dessus. Je crois qu'il y avait meme encore mieux que ca.


---------------
my flick r - Just Tab it !
Reply

Sujets relatifs:

Leave a Replay

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