IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Requête pour vérifier le nombre de personnes [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Par défaut Requête pour vérifier le nombre de personnes

    je fais une requête pour compter le nombre de personnes d'un même nom dans une table.
    Voici mon code :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $nom = "'test'";
    $req ="SELECT *, COUNT(DISTINCT Nom) AS nb
    			  FROM maTable WHERE Nom = $nom";
    		$res = mysql_query($req);
    		$row = mysql_fetch_array($res);
    		if($row['nb']>=1) {
    			echo "plusieurs noms";			
    		}
    		else echo " ca marche pas";
    J'ai fait un echo de ma requête, et normalement, elle devrait fonctionner :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT *, COUNT(DISTINCT Nom) AS nb FROM maTable WHERE Nom = 'test'
    Et pourtant, la boucle passe toujours dans le else, alors que j'ai ajouté plusieurs noms test dans la table.

    D'où vient le problème?


  2. #2
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Tu cherches à faire quoi avec ta requête parce qu'elle n'a pas l'air très logique

    ça, ça devrais passer mais devrais renvoyer toujours la valeur 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req ="SELECT COUNT(DISTINCT Nom) AS nb
    			  FROM maTable WHERE Nom = '$nom'";

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    Question bête : T'es sensé récupérer quoi dans $row['nbSoc'] ?

    sinon un simple SELECT COUNT(*) AS nb FROM table WHERE nom="truc" devrait suffire pour ce que tu veux faire.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut
    Avec ta requête SQL tu comptes le nombre de nom différents et égaux à $noms.

    "Combien de noms différents sont égaux à Bob ?"

    Réponse : 1, ben... Bob.


    Donc, tu veux sans doute faire la requête qui vient d'être donnée.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Par défaut
    Désolé, j'ai oublié une parenthèse après le count distinct.
    Je vais essayer celle proposée.
    Ce que je récupère, avec $row['nb'] (et pas nbSoc), c'est le nombre de noms identiques présents (la valeur de nb ).

    Merci, je vais tester vos propositions.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Par défaut
    J'ai fait comme Seb33300 l'a proposé :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $nom = $_POST['nom'];
    $req ="SELECT COUNT(DISTINCT Nom) AS nb
    	FROM maTable WHERE Nom = '$nom'";
    echo $req;
    $res = mysql_query($req);
    $row = mysql_fetch_array($res);
    if($row['nb']==1) {
    	echo "nom déjà présent";			
    }
    else echo "nom valide";
    Et l'echo de ma requête :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT COUNT(DISTINCT Nom) AS nb FROM maTable WHERE Nom = 'test'
    Le résultat affiché est nom valide, alors que la table contient déjà un nom test !
    Le problème vient surement de la construction de mon if, non?


  7. #7
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Si tu veux compter le nombre de noms identiques il faut enlever le DISTINCT.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req ="SELECT COUNT(Nom) AS nb
    	FROM maTable WHERE Nom = '$nom'";
    Et du coup il faudra passer le if en >=

    Et qu'est ce que tu veux dire par "Le résultat n'est pas valide ?"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Requête pour vérifier base de donné Mysql en php
    Par srab2pac dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/06/2008, 09h48
  2. Requête pour calculer le nombre de ligne
    Par salsero1 dans le forum SQL
    Réponses: 1
    Dernier message: 25/04/2008, 12h05
  3. Requête pour vérifier juste l'existence
    Par ptit.homm dans le forum DB2
    Réponses: 13
    Dernier message: 15/02/2008, 09h53
  4. [8.5]Problème pour calculer le nombre des personnes d'une liste
    Par Gotch59 dans le forum SAP Crystal Reports
    Réponses: 9
    Dernier message: 21/06/2007, 09h47
  5. [LDAP] Requête pour vérifier le login et mot de passe
    Par NiGHtyWolf dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 10/03/2007, 22h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo