Recherche couple valeur dans table avec count()

Résolu
danielos77 Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   -  
danielos77 Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   -

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

A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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 108 Date d'inscription   Statut Membre Dernière intervention   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 41521 Date d'inscription   Statut Modérateur Dernière intervention   9 720 > danielos77 Messages postés 108 Date d'inscription   Statut Membre Dernière intervention  
 

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

1
danielos77 Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   2 > jee pee Messages postés 41521 Date d'inscription   Statut Modérateur Dernière intervention  
 

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

0
jee pee Messages postés 41521 Date d'inscription   Statut Modérateur Dernière intervention   9 720
 

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