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 :

Vérifier l'existence d'un nom dans une table


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Points : 24
    Points
    24
    Par défaut Vérifier l'existence d'un nom dans une table
    salut!

    j'ai un code qui permet de verifier si un nom existe bien dans une bdd que voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    $nom = $_POST['nom'];
     
    $sql = "SELECT nom, prenom, cp FROM client";
    $quer = mysql_query($sql);
    while ($fe = mysql_fetch_array($quer))
    {
     if ($nom == $fe['nom'])
     {
       echo "nom ok<br>";
     }
     
     else
     {
       echo "pa bon";
     }
    }
    j'ai 3 noms enregistrés dans ma table : kiki, coco, mimi (c'est pour les tests)

    le problème est que si je teste avec un nom existant dans ma bdd (avec "kiki"), j'ai comme message :
    "nom ok"
    "pa bon"
    "pa bon"

    en faite ce code me compare le nom entré avec tous les noms existants dans ma bdd d'où les résultats précedents.

    mais franchement, je pige pas pk ça me fait ça...

    quelqu'un peut il m'aider?

    merci

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Pour faire simple :
    Ta requete, telle qu'elle est construite récupère tous les enregistrements qui sont dans ta table. Ce qui n'est pas très optimal côté ressources surtout si tu as des millions d'enregistrement à comparer.

    Bref, ce qu'il faudrait faire c'est restreindre déjà ta requête. On l'appelle aussi "filtrer". Donc au final tu aurais une requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM nomtable WHERE nom = 'nomsaisi'
    Avec ton code ça reviendrait à faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $query = "SELECT * FROM nomtable WHERE nom = '" . mysql_escape_string($nomsaisi) . "'";
    $res = mysql_query($query);
    $data = mysql_fetch_assoc($res);
    if(mysql_num_rows($res) > 0)
    {
        echo 'nom trouvé : '. $data['nom'].'cp : '.$data['cp'];
    }
    else
    {  
       echo 'non trouvé';
    }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Points : 24
    Points
    24
    Par défaut
    ok merci
    mais en ce qui concerne la verification de l'xistence d'un pseudo et mdp dans une bdd, il faut faire pareil?

  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
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par joselito
    ok merci
    mais en ce qui concerne la verification de l'xistence d'un pseudo et mdp dans une bdd, il faut faire pareil?
    Tu peux faire ça dans le même genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sql = "SELECT pseudo FROM membres WHERE nom='" . $nom . "'";
    $query = mysql_query($sql);
    $res = mysql_fetch_array($quer);
     if ($res['mdp'] == $mdp_a_verifier)
       echo "mokay";
     else
       echo "pas bon";
    A adapter bien sûr...
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  5. #5
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Voilà c'est exactement la réponse que j'allais fournir.

    Par contre je te conseillerai d'utiliser mysql_fetch_assoc il utilise moins de ressources que mysql_fetch_array

  6. #6
    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
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par Kerod
    Voilà c'est exactement la réponse que j'allais fournir.

    Par contre je te conseillerai d'utiliser mysql_fetch_assoc il utilise moins de ressources que mysql_fetch_array
    C'est noté je ne savais pas
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Points : 24
    Points
    24
    Par défaut
    ok merci
    mais je voulais savoir c'est si je peux l'adapter dans le cas où un adherent veut se logguer (pseudo + mdp), sans utiliser le nom en entrant juste son speudo et mdp?

    en faite verifier si ce pseudo est bien dans la base et si le mdp correspond bien à ce pseudo

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je vois pas où est le problème c'est le même code sauf qu'il faut changer le nom des champs utilisés

Discussions similaires

  1. Réponses: 7
    Dernier message: 31/08/2012, 18h42
  2. Réponses: 3
    Dernier message: 09/08/2010, 14h38
  3. [AJAX] verifier l'existance d'un nom dans une base en ajax
    Par jappa1482 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/02/2008, 17h31
  4. [Débutant]Vérifier existance d'un enregistrement dans une table
    Par fabiolous dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 25/04/2007, 12h01
  5. Vérifier l'existence d'un item dans une listbox
    Par soso78 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 23/03/2007, 10h12

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