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 :

Affichage valeurs noms champs identiques


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2006
    Messages : 75
    Par défaut Affichage valeurs noms champs identiques
    Bonjour à tous,

    Je galère depuis un bon moment sur le problème suivant.
    Merci d'avance à celui qui pourra m'aider.

    C'est un problème d'affichage des données avec deux champs de même nom dans deux tables différentes.
    Les deux tables sont justement liées par ce champ de même nom dans la jointure.

    La requête se présente comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      $requete_metres=$connexion->prepare(
      'SELECT * FROM metres_entetes '.
      'LEFT JOIN metres_lignes '.
      'ON metres_entetes.mte_id = metres_lignes.mte_id '.
      'WHERE user_id = :user_id '.
      'ORDER BY mte_date_creation DESC'
      );
    L'affichage dans une boucle est correct à un détail près.
    Pour chaque enregistrement de la table metres_entetes il peut y avoir n enregistrements dans la table metres_lignes.
    Parfois, il n'y a même aucun enregistrement dans cette dernière table.
    Et dans ce cas, la valeur du champ mte_id est null (parce que je suppose qu'on me renvoi la valeur de ce champ pris dans la seconde table (alors qu'il a bien une valeur dans la 1ère).

    Ma question est donc la suivante :
    Comment, dans l'affichage de mes réponses, puise-je préciser dans quelle table je veux que la valeur soit sélectionnée.

    J'affiche mes valeurs de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ($donnees_metres = $requete_metres->fetch(PDO::FETCH_OBJ)) {
      echo $donnees_metres->mte_id.'<br />';
    }
    Et je cherche à faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $donnees_metres->metres_entetes.mte_id
    Sans avoir à remplacer mon * de la sélection par le nom de chaque champ de cette façon table.champ1, table.champ2, etc.
    Merci ;-)

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 58
    Par défaut
    Salut,

    Sa fait un pti moment que j'ai pas fait de SQL mais si je me souviens bien il y à les Alias que tu peut utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $requete_metres=$connexion->prepare(
      'SELECT metres_entetes.mte_id As Entetes_ID,  metres_lignes.mte_id As Lignes_ID, *
          FROM metres_entetes '.
      'LEFT JOIN metres_lignes '.
      'ON metres_entetes.mte_id = metres_lignes.mte_id '.
      'WHERE user_id = :user_id '.
      'ORDER BY mte_date_creation DESC'
      );
    et dans ton code php tu peut récupérer comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $donnees_metres->Entetes_ID
    $donnees_metres->Lignes_ID
    sinon tu peut également donner un alias au tables et ensuite faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    // SQL
    $requete_metres=$connexion->prepare(
      'SELECT  *
          FROM metres_entetes As Entetes'.
      'LEFT JOIN metres_lignes  As Lignes '.
      'ON Entetes.mte_id = Lignes.mte_id '.
      'WHERE user_id = :user_id '.
      'ORDER BY mte_date_creation DESC'
      );
     
    // PHP
    $donnees_metres->Entetes.mte_id
    $donnees_metres->Lignes.mte_id
    A essayer car sa fait un bon moment comme j'ai dit que j'en est pas fait :p

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2006
    Messages : 75
    Par défaut Résolu
    Salut,

    Ha, génial !
    Je te remercie d'avoir pris le temps de me répondre.
    Proposition 1 adoptée. Ca fonctionne très bien ;-)
    En fait j'ignorai qu'on pouvait associer * et choisir des champs individuellement en plus.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 58
    Par défaut
    Salut,

    De rien avec plaisir

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/01/2010, 19h33
  2. [MySQL] Afficher valeur deux champs identiques
    Par Benzz dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 10/05/2008, 15h30
  3. Trier sur une valeur de champs et non sur le nom du champs
    Par kamalkam dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/05/2006, 17h41
  4. Requete affichage valeurs diferentes d'un champs
    Par joxbl dans le forum Requêtes
    Réponses: 4
    Dernier message: 10/11/2005, 15h27
  5. [FOREIGN K] Valeur de champ = nom de table. Bonne pratique ?
    Par Seb des Monts dans le forum Langage SQL
    Réponses: 9
    Dernier message: 17/05/2005, 10h56

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