Recherche couple valeur dans table avec count()

Résolu
danielos77 Messages postés 109 Statut Membre -  
danielos77 Messages postés 109 Statut Membre -

Bonjour,

Toujours en galère avec une requête, je me résous à poster ici.

Afin de voir si une personne est déjà inscrite, je pensais faire une requête sur la table membres sur les colonnes Nom et Prenom.
La requête directement dans la base fonctionne et donne bien la valeur à l'alias dejamembre 0 ou 1 mais dans code de la page, lorsque j'essaie d'afficher cette valeur pour ensuite la traiter avec un if else, j'ai les  messages ci-dessous :

Use of undefined constant dejamembre - assumed 'dejamembre' (this will throw an Error in a future version of PHP) in... Je comprends bien que c'est pas le bon choix pour le futur mais je ne sais pas comment corriger.

l'autre message est

count(): Parameter must be an array or an object that implements Countable in... Or c'est bien un tableau qui aura au maximum 1 ligne (soit le couple Non/Prenom est présent soit il ne l'est pas)

Le morceau de code est :

      // Vérification que Nom Prenom n'est pas déjà membre
        $sth = $bdd->prepare("SELECT COUNT(*) AS dejamembre FROM membres WHERE concat(Nom, Prenom) = '$Nom.$Prenom'");
        $sth->execute();
        echo count(dejamembre).'<br>';

Merci au bon samaritain qui m'expliquera comment je dois procéder.
Daniel
Windows / Firefox 107.0

2 réponses

jordane45 Messages postés 40050 Statut Modérateur 4 756
 

Bonjour,

Il faut faire un fetch ;..  voir même, ici, tu peux faire un fetchColumn  sur l'exécution de ta requête.

Il ne faut pas non plus oublier de mettre un $  devant le nom de tes variables php

bref:

 // Vérification que Nom Prenom n'est pas déjà membre
$sth = $bdd->prepare("SELECT COUNT(*) AS dejamembre FROM membres WHERE concat(Nom, Prenom) =  :nomPrenom ");
$sth->execute([':nomPrenom'=> $Nom . $Prenom ]);
$dejamembre =  $sth->fetchColumn();
echo $dejamembre.'<br>';

2
danielos77 Messages postés 109 Statut Membre 2
 

Bonjour Jordane45,

Je peux faire un fetchColumn alors que Nom et Prenom sont dans des colonnes différentes ?

0
jee pee Messages postés 42386 Statut Modérateur 9 739 > danielos77 Messages postés 109 Statut Membre
 

ce qui compte c'est le résultat du select où il n'y a qu'un seul champ.

1
danielos77 Messages postés 109 Statut Membre 2 > jee pee Messages postés 42386 Statut Modérateur
 

OK. Merci bien.
Bonnes fêtes de fin d'année à vous.

0
jee pee Messages postés 42386 Statut Modérateur 9 739
 

Bonjour,

Ton sql effectue un count et te renvoie une valeur, 0 ou 1. Tu n'as pas besoin d'utiliser le count() de php tu dois juste afficher le resultat du select.


1