Date Anniversaire [Résolu/Fermé]

LaChaux78 170 Messages postés lundi 25 juillet 2016Date d'inscription 11 décembre 2017 Dernière intervention - 22 nov. 2016 à 20:54 - Dernière réponse : le père. 5984 Messages postés mardi 15 mai 2012Date d'inscription 11 décembre 2017 Dernière intervention
- 23 nov. 2016 à 10:27
Bonjour
Sur mon site j'ai souhaité afficher l'anniversaire de chaque membre, bien sur le jour Anniversaire.
Ce que je ne comprends pas c'est pourquoi 2 membres sont né le même jour et il y a que 1 seule membre qui s'affiche.
Si vous pouvez m'aider j'ai beau tourner le script dans tous les sens je n'y arrive pas.
Je vous remercie.
$sql = "SELECT dnaiss, nom, prenom, annee
 FROM cdc_personnes
     LEFT JOIN cdc_adherer
     ON cdc_personnes.idpers = cdc_adherer.idpers
  WHERE annee = ?
  AND MONTH(dnaiss) = ?
  AND DAY(dnaiss) = ?";
$requete = $bdd->prepare($sql);
$requete->execute(array($aadh,$mois,$jour));

    $anniv = '';
    while ($donnees = $requete->fetch()) {
        $anniv = " - Bon anniversaire à : $donnees->nom $donnees->prenom";
    }

ici c'est la fonction du menu pour la variable où je souhaite l'affichage
function writehaut() {
    global $today,$saint,$anniv;
    
    echo "<div id=\"haut\">\n";
    echo "  <div id=\"logo\"><a href=\"index.php\"><img src=\"img/cruet.png\" style=\"margin-left:10px\" border=\"0\"></a></div>\n";
    echo "  <div id=\"date\">$today"." : ".$saint.$anniv."</div>\n";
    echo "</div>\n";
}

Au résultat je voudrais par exemple....
Bon anniversaire DUPONT Pierre - DUPOND René
Afficher la suite 
170Messages postés lundi 25 juillet 2016Date d'inscription 11 décembre 2017 Dernière intervention

5 réponses

le père. 5984 Messages postés mardi 15 mai 2012Date d'inscription 11 décembre 2017 Dernière intervention - 22 nov. 2016 à 23:42
+2
Utile
Bonjour

Dans ta boucle, tu écrases à chaque fois la valeur de $anniv, puisque tu fais $anniv="..."
Il faut ajouter le nouveau texte au bout de l'ancien, l'opérateur de concaténation étant le point . (et non le +, mais on a le droit de ne pas connaître php)

$anniv= $anniv . "...";

qui peut s'écrire plus simplement
$anniv .= "...";
Cette réponse vous a-t-elle aidé ?  
KX 15086 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 11 décembre 2017 Dernière intervention - 22 nov. 2016 à 21:57
0
Utile
Bonjour,

Je ne connais pas PHP, mais essaie comme ceci :

$anniv = "";
while ($donnees = $requete->fetch()) {
    if ($anniv == "") {
        $anniv = "Bon anniversaire à : ";
    }
    else {
        $anniv = $anniv + " - ";
    }
    $anniv = $anniv + "$donnees->nom $donnees->prenom";
}
LaChaux78 170 Messages postés lundi 25 juillet 2016Date d'inscription 11 décembre 2017 Dernière intervention - 22 nov. 2016 à 22:46
0
Utile
Bonjour
cela ne retourne rien, mais merci quand même c'est une piste.
LaChaux78 170 Messages postés lundi 25 juillet 2016Date d'inscription 11 décembre 2017 Dernière intervention - 23 nov. 2016 à 09:57
0
Utile
1
Bonjour
Merci c'est nickel.
Cordialement
le père. 5984 Messages postés mardi 15 mai 2012Date d'inscription 11 décembre 2017 Dernière intervention - 23 nov. 2016 à 10:27
De rien :-)