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 PostgreSQL Discussion :

La requête SELECT me renvoie les résultats en double [9.5]


Sujet :

Requêtes PostgreSQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 25
    Points : 29
    Points
    29
    Par défaut La requête SELECT me renvoie les résultats en double
    Bonjour,
    j'utilise PostgreSQL et postgis. Je fais une requête toute simple en utilisant PDO comme ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    try
    {
        $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $query = $connexion->prepare('SELECT * FROM departements');
        $query->execute();
     
        while ($enreg = $query->fetch())
        {
             print_r($enreg);
        }
    }
    Problème : le résultat va s'afficher en double. Je vais avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    [id] => 1
    [0] => 1
    [id_geofla] => DEPARTEM0000000000000001
    [1] => DEPARTEM0000000000000001
    [code_dept] => 69
    [2] => 69
    [nom_dept] => RHONE
    [3] => RHONE
    [nom_chf] => LYON
    [4] => LYON
    ...
    Je ne comprends pas ce que sont ces colonnes [0], [1], [2]... et pourquoi elles apparaissent ici alors qu'elles ne sont pas présentes dans ma table. D'ailleurs, la même requête dans pgAdmin ne m'affiche pas ces colonnes supplémentaires. De même, en me connectant avec pg_connect, comme suivant, je n'ai pas ces colonnes supplémentaires, j'ai un résultat logique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $connexion = pg_connect("dbname='xxxx' user='xxxxxx' password='xxxxx' host='localhost'");
    $query = pg_query($connexion , 'SELECT * FROM departements');
    while ($enreg = pg_fetch_assoc($query))
    {
        print_r($enreg);
    }
    Le code précédent me donne bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    [id] => 1
    [id_geofla] => DEPARTEM0000000000000001
    [code_dept] => 69
    [nom_dept] => RHONE
    [nom_chf] => LYON
    ...
    Pourquoi ces colonnes, qui me double le résultat, s'affichent juste en utilisant PDO ?
    Je précise que j'ai plus souvent l'habitude d'utiliser mysql d'où une question peut-être naïve.

    Merci !
    Maxime

  2. #2
    Membre confirmé Avatar de Sebwar
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 172
    Points : 498
    Points
    498
    Par défaut
    Hello !

    tu peux préciser dans ton fetch que tu ne veux que les champs avec les noms de colonnes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query->fetch(PDO::FETCH_ASSOC)
    par défaut le fetch() renvoi un tableau indéxé par le nom et le numéro de la colonne.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 25
    Points : 29
    Points
    29
    Par défaut
    En fait fetch ressemble à fetch_both ?

    Je viens de trouver un lien pour me remettre en tête les fetch mode.
    http://www.cloudconnected.fr/2007/10...-modes-de-pdo/

    Si ça peut servir à quelqu'un. En tout cas merci bien !

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

Discussions similaires

  1. SELECT ne renvoie aucun résultat
    Par CLeBeR dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/01/2016, 17h27
  2. [VxiR2] Sous requete select pour aplatir les résultats
    Par weed dans le forum Webi
    Réponses: 0
    Dernier message: 28/11/2015, 11h35
  3. Requête count renvoyant aussi les résultats=0
    Par Peq13 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/03/2010, 15h33
  4. Requête GROUP BY inclure les résultats NULL
    Par cantador dans le forum SQL
    Réponses: 14
    Dernier message: 10/10/2008, 08h45
  5. Requête SELECT problème dans les résultats trouvés ...
    Par snoopy69 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/10/2005, 12h46

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