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 :

Mon SELECT COUNT me renvoie toujours 1 [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é Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Par défaut Mon SELECT COUNT me renvoie toujours 1
    Bonjour,

    Petit problème...quoiqu'il arrive mon Select Count me renvois 1...même quand ma table est vide...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $nombre=mysql_query("SELECT COUNT(email) FROM profiles WHERE email='$email'") or die ("<h1>erreur insert ".mysql_error()."</h1>");
        $nombre=mysql_num_rows($nombre);
    	print $nombre;
     
    	if($nombre<0) //---Si il n'existe pas, alors on ajoute---//
    	{
    	 mysql_query("INSERT INTO profiles (email) VALUES ('$email') ") or die ("<h1>erreur insert ".mysql_error()."</h1>");
    	 print ("<h1>insertion réalisée !</h1><br>"); //---OK ajout effectué---//
    	}
    	else print ("<h1>Email déjà existant !</h1><br>"); //---Email déjà existant---//
    Si quelqu'un peut m'aider...

  2. #2
    Invité
    Invité(e)
    Par défaut
    peux-tu afficher ta requête sur ta page et voir si la condition est bien respectée?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "SELECT email FROM profiles WHERE email='".$email."'";

  3. #3
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Non je pense qu'il faut enlever les simples quotes, moi j'aurai écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "SELECT email FROM profiles WHERE email=$email;
    Au passage,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "SELECT email FROM profiles WHERE email='".$email."'";
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "SELECT COUNT(email) FROM profiles WHERE email='$email'"
    sont identiques
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  4. #4
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Buchs => Si tu enlèves les quotes la requête ne marchera pas (car je suppose que le champ mail est une chaîne de caractères...).

  5. #5
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Citation Envoyé par JWhite
    Buchs => Si tu enlèves les quotes la requête ne marchera pas (car je suppose que le champ mail est une chaîne de caractères...).
    Ben je sais pas, il a pas préciser ou chaine de caractere et si c'est un int, les 2 manières de l'écrire fonctionne
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  6. #6
    Membre très actif
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Par défaut
    avec une variable qui s'appelle $email on s'imagine bien que c'est une chaine de caractère

  7. #7
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Citation Envoyé par buchs
    Ben je sais pas, il a pas préciser ou chaine de caractere et si c'est un int, les 2 manières de l'écrire fonctionne
    Arf oui tu as raison dans ma tête un mail c'est du texte mais en fait c'est peut-être l'id du mail (ça serait plus logique mais le nom du champ est pas très bien choisi alors). Dsl

  8. #8
    Membre très actif
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Par défaut
    essaie de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $nombre=mysql_query("SELECT COUNT(email) as nbr_email FROM profiles WHERE email='$email'") or die ("<h1>erreur insert ".mysql_error()."</h1>");
        $nombre=mysql_fetch_object($nombre);
    	//print $nombre;
    	
    	if($nombre->nbr_email==0) //---Si il n'existe pas, alors on ajoute---//
    	{
    	 mysql_query("INSERT INTO profiles (email) VALUES ('$email') ") or die ("<h1>erreur insert ".mysql_error()."</h1>");
    	 print ("<h1>insertion réalisée !</h1><br>"); //---OK ajout effectué---//
    	}
    	else print ("<h1>Email déjà existant !</h1><br>"); //---Email déjà existant---//

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

Discussions similaires

  1. mon formulaire de connexion renvoie toujours faux
    Par jerem070695 dans le forum Langage
    Réponses: 2
    Dernier message: 23/11/2008, 08h03
  2. requête count(*) renvoie toujours 0
    Par expertimeUser dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/08/2007, 14h29
  3. COUNT avec LEFT JOIN qui renvoie toujours 1
    Par Christophe_ dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/06/2007, 14h20
  4. Plusieurs Count dans mon select
    Par thomfort dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/03/2007, 17h39
  5. mon select count(*) marche pas
    Par zorba49 dans le forum Langage SQL
    Réponses: 14
    Dernier message: 05/08/2005, 08h28

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