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 :

Bug de la fonction mysql_fetch_assoc ? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut Bug de la fonction mysql_fetch_assoc ?
    Bonjour

    J'ai l'impression d'avoir découvert un bug dans php, mais j'ai peut-être laissé passer une erreur ailleurs.
    Le problème concerne la fonction mysql_fetch_assoc (mais également mysql_fetch_row).

    Sous phpMyAdmin, j'ai le résultat suivant :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT DISTINCT `__logs_connexion`.`nom` AS CHAMP, `__logs_connexion`.`nom` AS VALEUR
    FROM __logs_connexion
    WHERE 1 
    ORDER BY `__logs_connexion`.`nom` ASC 
    LIMIT 0 , 30
    renvoie :
    CHAMP VALEUR
    Inconnu Inconnu
    toto toto

    Avec php, j'ai plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $sql = "SELECT DISTINCT `__logs_connexion`.`nom` AS CHAMP, `__logs_connexion`.`nom` AS VALEUR
    FROM __logs_connexion
    WHERE 1 
    ORDER BY `__logs_connexion`.`nom` ASC 
    LIMIT 0 , 30";
     
    $query = mysql_query($sql) or die("erreur dans la requete $sql");
    while ($data_ = mysql_fetch_assoc($query)) print_r($data_);
    renvoie
    Array ( [CHAMP] => toto [VALEUR] => toto )
    Array ( [CHAMP] => toto [VALEUR] => toto )

    Quelqu'un a-t-il une explication ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 90
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT DISTINCT `__logs_connexion`.`nom` AS CHAMP, `__logs_connexion`.`nom` AS VALEUR
    Tu sélectionnes 2 fois la même chose là non ?

  3. #3
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Oui, c'est exprès. Mais ça ne devrait pas empêcher de parcourir le $query, logiquement.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Pour avoir testé scrupuleusement avec vos informations (Windows, php 5.2.0), ce n'est pas mon cas :
    Array ( [CHAMP] => Inconnu [VALEUR] => Inconnu )
    Array ( [CHAMP] => toto [VALEUR] => toto )
    A mon avis il ne peut s'agir d'un bug dans la mesure où phpMyAdmin vous indique un résultat différent (à moins que ces deux tests n'aient été effectués sur des machines ou configurations différentes).


    Julp.

  5. #5
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Merci pour le test. Je vais vérifier la configuration de mon serveur.

    EDIT :
    Toujours pas de solution. Je commence à désespérer.
    Y a-t-il des paramètres spécifiques à passer à MySQL lors de la connexion ?

  6. #6
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Help : quand je fais cette requête, j'ai bien le résultat attendu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT DISTINCT portfolio_name as CHAMP , portfolio_name as VALEUR FROM __logs_connexion WHERE 1 ORDER BY CHAMP ASC";
    Si je fais celle-ci, ça ne marche plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT DISTINCT page as CHAMP , page as VALEUR FROM __logs_connexion WHERE 1 ORDER BY CHAMP ASC";
    idem si je requête sur le champ "nom".

    Un problème de mots réservé ?

  7. #7
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Bonjour

    Il semble que le problème vienne plutôt de mysql.

    la requête ne fonctionnait que sur les champs non indexés ; en vérifiant les indexes, il apparaît que toutes les cardinalités sont à zéro.
    Exemple :
    Nom de la clé Type Cardinalité Action Champ
    nom INDEX aucune nom

    Si quelqu'un a une explication, je reste preneur, mais le problème est résolu.

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

Discussions similaires

  1. Rapport de bug sur les fonctions de XDebug
    Par lryo79 dans le forum Zend Studio
    Réponses: 8
    Dernier message: 14/06/2007, 15h35
  2. [Dates] Bug avec ma fonction formatage de date
    Par groland dans le forum Langage
    Réponses: 6
    Dernier message: 14/03/2007, 15h24
  3. Bug dans la fonction "répéter l'en-tête de groupe sur chaque page"
    Par nanouille56 dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 17/10/2006, 08h04
  4. Bug de la fonction strcspn?
    Par Trunks dans le forum C
    Réponses: 7
    Dernier message: 17/04/2006, 23h44
  5. [9i] bug dans la fonction transform XMLType (XSL) ?
    Par Nico57 dans le forum Oracle
    Réponses: 1
    Dernier message: 20/01/2006, 10h11

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