Condition if / elseif

Résolu
Utilisateur anonyme - Modifié par jordane45 le 15/04/2015 à 00:55
 Utilisateur anonyme - 16 avril 2015 à 00:09
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 .

3 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 15/04/2015 à 01:06
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
0
Utilisateur anonyme
15 avril 2015 à 03:26
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).

--
0
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
0
Rejoignez-nous