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 :

test existence enregistrement [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 50
    Points : 38
    Points
    38
    Par défaut test existence enregistrement
    Bonjour à tous,

    J'ai un problème que je n'arrive pas à résoudre. Je cherche à vérifier si un identifiant existe déjà dans un table mysql en fonction d'un id fourni via un formulaire. Pour y parvenir j'ai utilisé cette méthode (qui marche parfaitement à beaucoup d'endroit dans mon code pour d'autre situation, sauf ici) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $res    = mysql_query("SELECT COUNT(*) AS nbr FROM `REPARATIONS`.`tclients` WHERE id = '".$_POST['numero_client']."'");
    $existe = mysql_fetch_assoc($res);
     
    if($existe['nbr'] == 0)//le client n'existe pas encore
    {
            echo 'Le client n\'existe pas.';
    	exit;
    }
    Il me retourne la fameuse erreur :
    Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given
    Je me suis dit que la requête devait queuter et ne pas être une ressource... Cependant, dans PHPMyAdmin, la requête fonctionne.

    Je n'ai plus d'idée, j’espère que vous en aurez une pour moi...
    Merci pour votre aide.

    P.S. : voici le même type de test qui fonctionne sans soucis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $res = mysql_query("SELECT COUNT(*) AS nbr FROM `REPARATIONS`.`tcollaborateurs` WHERE initiales = '".$_POST['initiales_collaborateur']."'");
    $existe = mysql_fetch_assoc($res);
     
    if($existe['nbr'] == 0)//le collaborateur n'existe pas encore
    {
           echo'Le collaborateur n\'existe pas.';
    }

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Protege tes données, affiche ta requête et les erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql = "SELECT COUNT(*) AS nbr FROM `REPARATIONS`.`tclients` WHERE id = '".mysql_real_escape_string($_POST['numero_client'])."'";
    $res    = mysql_query($sql);
    echo $sql . '<br/>' . mysql_error();
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 50
    Points : 38
    Points
    38
    Par défaut
    Salut Sabotage et merci pour ta réponse et tes conseils. Voici ce que j'obtient :

    Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-DevServer-13.1VC9\data\localweb\gestion des reparations\ajout_id.php on line 72
    SELECT COUNT(*) AS nbr FROM `REPARATIONS`.`tclients` WHERE id = '1'
    SELECT command denied to user ''@'localhost' for table 'tclients'
    C'est donc que je n'ai pas les droits nécessaire à une requête SELECT sur cette table ? Pourtant PHPMyAdmin semble indiquer que les droits sont bons...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 50
    Points : 38
    Points
    38
    Par défaut
    J’oscille entre joie (d'avoir trouvé la solution) et honte (d'avoir queuté sur un truc aussi évident) :

    J'ai réalisé ce test avant d'être connecté à la base de données...

    Je retient tout de même la protection des variables et l'affichage de l'erreur qui ma rapidement mit sur la bonne voie.

    Merci Sabotage.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/09/2011, 11h12
  2. Réponses: 1
    Dernier message: 27/02/2008, 16h13
  3. test existance d'un schema
    Par romdelf dans le forum Oracle
    Réponses: 2
    Dernier message: 13/03/2006, 12h46
  4. debutante - test existence fichier
    Par coco21 dans le forum Débuter
    Réponses: 9
    Dernier message: 12/02/2006, 12h07
  5. [C++ .NET] Test existence d'un fichier
    Par remixxl dans le forum VC++ .NET
    Réponses: 3
    Dernier message: 26/07/2004, 19h21

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