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

Requêtes MySQL Discussion :

ma recherche est introuvable


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 41
    Points : 29
    Points
    29
    Par défaut ma recherche est introuvable
    Bonjour à tous.

    Je n'arrive pas a récupérer des données.

    TB_MAP est defined = 'ma_table'

    Soit une table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE `ma_table` (
      `prenom`      varchar(20) NOT NULL default '',
      `nom`      	varchar(50) default NULL,
      `age`         tinyint(1) NOT NULL DEFAULT 0,
      `ville`       varchar(50) default NULL,
      `pays`        varchar(50) default NULL,
      PRIMARY KEY  (`prenom`)
    ) TYPE=MyISAM DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;
    Je souhaite retrouver l'age de Paul sachant qu'il n'y a qu'un
    seul Paul dans ma base.

    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
    18
     
     $prenom = 'Paul'; 
        $my_connect = mysql_connect($K['host'], $K['user'], $K['pass']);
        if (!$my_connect) { die('Could not connect: ' . mysql_error($my_connect));  } 
        mysql_select_db($K['name'],$my_connect) or die(mysql_error($my_connect));
        $query = "SELECT prenom
                  FROM " . TB_MAP . "
                  WHERE prenom = '" . $prenom . "'";
        $result = mysql_query($query,$my_connect) or die("Invalid query: " . mysql_error($my_connect).__LINE__.__FILE__);
        $stored  = mysql_fetch_array($result); 
     
        echo 'array length...: '.count($stored).'<br />';    // Pour tester seulement
     
        if ($stored['prenom'] == $prenom) { $age = $stored['age']; }  // le conditionnel est OK, pas l'assignation
     
     
          mysql_free_result($result);
          mysql_close($my_connect);
    Problème:
    1- count($stored) renvoie 2 alors que ce devrait être 5
    2- dans la foulée et pour cause $stored['age'] est vide, mais pas $stored['prenom']...!

    Pourquoi docteur...?

    Ou est mon bug...?

    Merci grandement pour une éventuelle solution.

    Cordialement @ tous.

    -= Guy =-

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,


    Pour le 2 :
    votre requête est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select prenom
    from ..
    Si vous ne sélectionnez pas l'âge comment voullez-vous avoir une valeur dans $stored['age'] ?

    Du coup vous devez en déduire le problème du 1.

  3. #3
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Citation Envoyé par gdlmus Voir le message
    Je souhaite retrouver l'age de Paul sachant qu'il n'y a qu'un
    seul Paul dans ma base.

    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
    18
     
     $prenom = 'Paul'; 
        $my_connect = mysql_connect($K['host'], $K['user'], $K['pass']);
        if (!$my_connect) { die('Could not connect: ' . mysql_error($my_connect));  } 
        mysql_select_db($K['name'],$my_connect) or die(mysql_error($my_connect));
        $query = "SELECT prenom
                  FROM " . TB_MAP . "
                  WHERE prenom = '" . $prenom . "'";
        $result = mysql_query($query,$my_connect) or die("Invalid query: " . mysql_error($my_connect).__LINE__.__FILE__);
        $stored  = mysql_fetch_array($result); 
     
        echo 'array length...: '.count($stored).'<br />';    // Pour tester seulement
     
        if ($stored['prenom'] == $prenom) { $age = $stored['age']; }  // le conditionnel est OK, pas l'assignation
     
     
          mysql_free_result($result);
          mysql_close($my_connect);
    Problème:
    1- count($stored) renvoie 2 alors que ce devrait être 5
    2- dans la foulée et pour cause $stored['age'] est vide, mais pas $stored['prenom']...!

    Pourquoi docteur...?

    Ou est mon bug...?
    Saluton,
    deux choses :
    1. Pourquoi $- count($stored) devrait être à 5 s'il n'y a qu'un 'Paul' dans la table ?
    2. Que $stored['age'] soit vide n'a rien d'étonnant puisque la colonne ne figure pas dans la projection demandée à la clause SELECT..
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Bonjour @ tous,

    Merci à "Maljuna Kris" & "punkoff", vos commentaire m'ont mis la puce à l'oreille et j'ai trouvé ma solution en modifiant mon query comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        $query = "SELECT age
                  FROM " . TB_MAP . "
                  WHERE prenom = '" . $prenom . "'";
    Cordialement.

    -= Guy =-

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

Discussions similaires

  1. Le module spécifié est introuvable
    Par nikhil dans le forum Langage
    Réponses: 14
    Dernier message: 13/12/2014, 13h59
  2. [ZEND] _Zend_Hash_init est introuvable
    Par christophebmx dans le forum Zend
    Réponses: 1
    Dernier message: 23/09/2005, 16h06
  3. [XP] l'icone Voix est introuvable ?
    Par sali dans le forum Windows XP
    Réponses: 8
    Dernier message: 20/08/2005, 07h53
  4. Le module spécifié est introuvable
    Par aluc4rd dans le forum GTK+ avec Python
    Réponses: 3
    Dernier message: 07/06/2005, 19h11
  5. [DEBUTANT]Le fichier spécifié est introuvable
    Par Battosaiii dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 04/04/2005, 16h36

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