Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment faire des Jointures.

Sujet résolu
    29 novembre 2020 à 10:03:52

    Bonjour a vous comment allez vous ? alors j'aimerai faire une jointure sur 3 tables je m'explique, j'ai fais un système de commentaire avec une bloucle while avec $data['id] que je dois récupérer l'id d'un commentaire pour les utiliser, sauf que dans ma requête, j'ai fais des jointure sur les 3 tables, mais le problème c'est que il me recupere l'id par exemple d'une autre table, alors que je veux juste l'id de la table commentaire, alors voici ce que j'ai fais: 'nom_table.champ' etc...

    SELECT addon_comment.id, addon_comment.users_id, addon_comment.commentaire, addon_comment.pseudo, addon_comment.date_publish, addon_comment.token, addon_comment.token_reply, users.avatar, users.id FROM addon_comment, alpha_addon, users WHERE addon_comment.users_id = users.id AND addon_comment.id_alpha_addon = alpha_addon.id AND alpha_addon.id = $get_id ORDER BY addon_comment.id DESC

    Est-ce que il n'y a pas un autre moyens de faire la jointure sur les 3 tables et récuperer par exemple l'id de la table commentaire ? Bon j'ai chercher a contourné ce problème en récupérant le champ token, pendant une insertion d'un commentaire.:p



    -
    Edité par The_alpha 29 novembre 2020 à 10:06:00

    • Partager sur Facebook
    • Partager sur Twitter
      30 novembre 2020 à 9:07:20

      Bonjour,

      Dans ton select tu as deux colonnes qui se nomment id, donc il y a ambiguïté au moement de récupérer l'id dans ton code ...

      Le plus simple c'est d'utiliser des alias (noms de remplacement) pour ôter l’ambiguïté :

      SELECT
      	AC.id AS ac_id,
      	AC.users_id,
      	AC.commentaire,
      	AC.pseudo,
      	AC.date_publish,
      	AC.token,
      	AC.token_reply,
      	U.avatar,
      	U.id AS u_id
      FROM
      	addon_comment AC
      		INNER JOIN alpha_addon AA
      			ON AC.id_alpha_addon = AA.id
      		INNER JOIN users U
      			ON AC.users_id = U.id
      WHERE AA.id = '...'
      ORDER BY AC.id DESC
      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        30 novembre 2020 à 15:34:15

        Bonjour, merci de m'avoir, mais j'ai fais comme vous avez mis, et j'ai eu comme quoi undefini index id je ne comprend pas pourquoi.

         $reqComment = $pdo->query("SELECT AC.id AS ac_id, AC.users_id, AC.commentaire, AC.pseudo, AC.date_publish, AC.token, AC.token_reply, U.avatar, U.id AS u_id FROM addon_comment AC INNER JOIN alpha_addon AA on AC.id_alpha_addon = AA.id INNER JOIN users U on AC.users_id = U.id WHERE AA.id = $get_id ORDER BY AC.id DESC"); 
                                while($data = $reqComment->fetch()){
                                  $mode_edition = 1;
                                ?>



        -
        Edité par The_alpha 30 novembre 2020 à 15:35:07

        • Partager sur Facebook
        • Partager sur Twitter
          30 novembre 2020 à 15:45:39

          Bonjour,

          Déplacement vers un forum plus approprié

          Le sujet est déplacé de la section Base de données vers la section PHP

          The_alpha a écrit:

          j'ai eu comme quoi undefini index id je ne comprend pas pourquoi

          Simplement parce que la requête ne retourne pas d'élément nommé "id" puisque des alias renomme en "ac_id" et "u_id" pour supprimer les ambiguïtés ...

          -
          Edité par Benzouye 30 novembre 2020 à 16:00:31

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            30 novembre 2020 à 17:24:08

            Bonjour, d'accord merci et comment je dois faire alors pour récupérer l'id de ma table commentaire ?

            Edit: C'est bon, j'ai trouver ? Sujet résolu. Merci a vous deux :)

            -
            Edité par The_alpha 30 novembre 2020 à 18:14:07

            • Partager sur Facebook
            • Partager sur Twitter

            Comment faire des Jointures.

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown