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 :

Pb requete count


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 236
    Points : 80
    Points
    80
    Par défaut Pb requete count
    Bonjour,
    J'ai un petit pb avec cette requette
    en fait elle me sert a verifier si le membre que je souhaite ajouter a ma base n'est pas deja present
    Mais en fait meme si il n'est pas present la requete me renvoie 1
    Et si je passe la limite a >1 bien sur ca me donne une erreur MySQL
    Voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_pseudo = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$_POST['pseudo']."'");
    merci

  2. #2
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 289
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 289
    Points : 2 010
    Points
    2 010
    Par défaut Re: Pb requete count
    Citation Envoyé par shub
    bien sur ca me donne une erreur MySQL
    Faut deviner l'erreur ?

  3. #3
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    Salut,
    peut-être que j'ai pas les yeux en face des trous (c'est possible en fin de journée) mais à première vue, je vois pas de problème avec cette requête .... si ce n'est un gros risque de vulérabilité aux injections sql, mais ca c'est une autre histoire ...
    Est-ce que t'es sur que c'est le code sql qui est pas bon ? t'as essayé de passer cette requete dans phpmyadmin ou en mode console ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 236
    Points : 80
    Points
    80
    Par défaut
    L'erreur obtenu est ud genre "duplicate data for entry....."
    Cela arrive lorsque je cherche a entrer un pseudo qui est deja present dans la base et normalement la requete est la pour parer cette eventualité et rediriger l'admin vers une autre page.

  5. #5
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 289
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 289
    Points : 2 010
    Points
    2 010
    Par défaut
    Citation Envoyé par shub
    L'erreur obtenu est ud genre "duplicate data for entry....."
    Le genre précis, ce serait mieux.

  6. #6
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    ça ressemble plus à une faute du à un insert...

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 236
    Points : 80
    Points
    80
    Par défaut
    Je n'ai pas l''erreur exacte car je ne veux pas bidouiller mon code pour un truc benin
    En gros cette requette est censé m'assurer que l'administratuer ne pourra pas mettre deux membre avec le meme pseudo ou avec le meme mail
    L'erreur que j'obtiens est une erreur "provoqué" lorque je souhaite rentrer un pseudo alors qu'il est deja dans la base
    Cette erreur me dit donc que je ne peux pas ajouter ce membre car le pseudo existe deja dans la base ce qui est normal ais ce qui veux dire que la requette ne fait pas son boulot car elle ne fait pas le compte correctement
    par exemple en meettant un echo de la requete et lorsque le membre que j'essaie de mettre n'existe pas dans la base le count me renvoie 1
    Merci

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 236
    Points : 80
    Points
    80
    Par défaut
    ça ressemble plus à une faute du à un insert... Rolling Eyes
    Bien sur car après ce test je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = "INSERT INTO membres VALUES('', '$pseudo_aj', '$mot_passe', '$mail','$nom_membre','$adresse','$telephone','$admin')";
    je suis deloé si je ne m'exprime pas bien

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 236
    Points : 80
    Points
    80
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$sql_pseudo = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$_POST['pseudo']."'");
    echo $sql_pseudo;
    Avec ce joli code qui est censé afficher le nombre d'occurence du pseudo entré en parametre j'obtient
    Resource id #4
    Je ne comprend pas trop..

  10. #10
    Membre régulier
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Points : 102
    Points
    102
    Par défaut
    peut etre que la requete n'aime pas le count(*), essaye de faire un count d'un champ de la table comme la clé primaire.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 236
    Points : 80
    Points
    80
    Par défaut
    non ca ne vient pas de ca

  12. #12
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    alors on va poser les choses au clair : Affiche ta requête une fois exécutée, si tu es sûr que c'est d'elle que provient le problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $chaine_SQL = "SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$_POST['pseudo']."'"
    echo $chaine_SQL;
    $sql_pseudo = mysql_query($chaine_SQL);
    Et tu nous la colles ici. Ensuite, sans message d'erreurs précis, c'est un peu dur de deviner ton problème, je pense que personne n'as de boules de crystal...

  13. #13
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Points : 72
    Points
    72
    Par défaut
    Une requete comprenant un count te ramenera toujours 1 seul et unique résultat, puisqu'il compte le nombre de lignes retournées (dans ton cas un ou 0).

    il faut que tu compare la valeur de ton count, avant de faire ton insertion dans ta base.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $sql_pseudo = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$_POST['pseudo']."'"); 
     
    $rowPseudo = mysql_fetch_assoc($sql_pseudo);
     
    if($rowPseudo['nb_pseudo'] == 0)
    {
         //insertion
    }

Discussions similaires

  1. [MySQL] Requete count et l'afficher
    Par tyarak dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/11/2005, 22h57
  2. Réponses: 7
    Dernier message: 05/11/2005, 16h53
  3. Requete COUNT sur 3 tables
    Par Le-Cortex dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/09/2005, 11h39
  4. Requete Count
    Par Slayes dans le forum Langage SQL
    Réponses: 11
    Dernier message: 23/01/2005, 20h01
  5. Aide pour une requete ... "COUNT(*)"
    Par mechantebestiole dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/05/2004, 17h27

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