Signaler

Date Anniversaire [Résolu]

Posez votre question LaChaux78 42Messages postés lundi 25 juillet 2016Date d'inscription 6 décembre 2016 Dernière intervention - Dernière réponse le 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 
Utile
+2
moins plus
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 .= "...";
Ajouter un commentaire
Utile
+0
moins plus
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";
}
Ajouter un commentaire
Utile
+0
moins plus
Bonjour
cela ne retourne rien, mais merci quand même c'est une piste.
Ajouter un commentaire
Utile
+0
moins plus
Bonjour
Merci c'est nickel.
Cordialement
le père. 5706Messages postés mardi 15 mai 2012Date d'inscription 5 décembre 2016 Dernière intervention - 23 nov. 2016 à 10:27
De rien :-)
Répondre
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !