Condition if / elseif [Résolu]

Messages postés
98
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
3 décembre 2019
-
Bonjour,

Débutant en php, je suis entrain d'élaborer un site sportif. Sur ce site j'ai mis un petit script d'anniversaires et j'ai un souci d'affichage.

Le script affiche les d'anniversaires du mois (une table mysql contient les noms des gens, leurs jours et mois de naissance).
Donc a l'affichage, je désire obtenir (par exemple pour ce mois ci) :

Anniversaire du mois d'avril

Personne X (le 1er)
Personne Y (le 6)
Personne Z (le 14. C'est son anniversaire aujourd'hui)

Mon problème est qu' il annonce l'anniversaire automatiquement a la dernière personne de la liste (même si ce n'est pas son anniversaire)..

Pour ça j'ai utilisé le test conditionnel suivant
if ($jour==1) {
echo '<span class="couleur2arial12gras">'. $nom .' (le 1<sup>er</sup>)</span><br />';
}
elseif ($jour) {
echo '<img src="images/cadeau.png"> <span class="anniversaire">'. $nom .' (le' . $jour .'. C\'est son anniversaire aujourd\'hui)</span><br />';
}
else {
echo '<span class="couleur2arial12gras">'. $nom .' (le '. $jour .')</span><br />';
}


la première condition c'est si l'anniversaire a lieu le 1er du mois. Il permet d'afficher Personne X (le 1er) au lieu de Personne X (le 1)
la deuxième condition (celle qui semble me poser problème) c'est le jour de l'anniversaire (on affiche une image d'un petit cadeau, on change la couleur de la police et on annonce que l'anniversaire est aujourd'hui).
la troisième condition ce sont tous les autres cas (donc du 2 jusque la fin du mois hors jour d'anniversaire).

J'ai essayé la condition avec un switch / case et j'ai exactement le même souci.
J'ai également essayer en fonction de la date du jour elseif ($jour==date('d')) et en fait la date de la derniere personne de la liste est automatique mise a la date du jour.
Par exemple pour ce mois-ci la date d'anniversaire de la dernière personne de la liste c'est le 13 avril. La ligne continue d'être annoncée comme étant son anniversaire aujourd'hui et avec la fonction date, son jour d'anniversaire est automatiquement changé a la date du jour.

Me suis-je trompé dans la variable $jour (qui va chercher le jour de naissance dans la base mysql) ou dans la condition ?
Merci pour votre possible aide.
Michel


EDIT : Ajout des balises de code .
Afficher la suite 

3 réponses

Messages postés
26964
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 décembre 2019
318
0
Merci
Bonjour,

1 - Merci d'utiliser les balises de code
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

2 - Avec juste ton IF ... difficile de te répondre...
Il nous faudrait le code complet ... ainsi que la structure de ta Table ... et également quelques exemples de données (qui sont présentes dans ta table) .... histoire que l'on sache ce que contient tes variables....

3 - Tu peux également ajouter un ECHO de ta variable avant le IF histoire de regarder ce qu'elle vaut.... et donc ce que tu dois mettre dans ta condition...


$jourToday = date('d');

//le temps des tests
echo "<br> JOUR = ".$jour;
echo "<br> Aujourd'hui.. c'est le jour = ".$jourToday;

$xiemeJour = ($jour==1) ? "1<sup>er</sup>":$jour;

if ($jour == $jourToday) {
  echo '<img src="images/cadeau.png"> <span class="anniversaire">'. $nom .' (le' . $xiemeJour .'. C\'est son anniversaire aujourd\'hui)</span><br />';
}else {
  echo '<span class="couleur2arial12gras">'. $nom .' (le '. $xiemeJour  .')</span><br />';
}



Cordialement,
Jordane
Commenter la réponse de jordane45
Messages postés
98
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
3 décembre 2019
1
0
Merci
Bonsoir,
Merci pour ta réponse.
En fait j'ai réessayé avec un switch case et la ça semble fonctionner. Je dis bien ça semble car je l'ai fait après minuit donc pour en être sur il faut que j'attende demain (pour le changement de jour, les dates prises en compte étant les dates du serveur de mon hébergeur, je ne peux pas simuler un changement de jour).

--
Commenter la réponse de Michel2107
Messages postés
98
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
3 décembre 2019
1
0
Merci
Le fameux changement de jour vient d'avoir lieu et mon switch case fonctionne parfaitement. Je viens d' assister au changement en direct. J'ai mis 2 dates "fictives" : un anniversaire le 15 et un le 16. A 23h59 je me suis connecté sur le site, le 15 était surligné avec le petit cadeau en précisant que c'était son anniversaire, a minuit j'ai rafraîchit la page avec un F5 et c'était celle du 16 qui était surlignée. Tout est rentré dans l'ordre. Merci
Commenter la réponse de Michel2107