Date Anniversaire

Résolu
LaChaux78 Messages postés 585 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
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é

4 réponses

  1. Utilisateur anonyme
     
    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 .= "...";
    2
  2. KX Messages postés 19031 Statut Modérateur 3 020
     
    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";
    }
    0
  3. LaChaux78 Messages postés 585 Date d'inscription   Statut Membre Dernière intervention   32
     
    Bonjour
    cela ne retourne rien, mais merci quand même c'est une piste.
    0
  4. LaChaux78 Messages postés 585 Date d'inscription   Statut Membre Dernière intervention   32
     
    Bonjour
    Merci c'est nickel.
    Cordialement
    0
    1. Utilisateur anonyme
       
      De rien :-)
      0