Partage
  • Partager sur Facebook
  • Partager sur Twitter

[SQL] Récupération de donnée d'une autre table

Sujet résolu
    1 septembre 2020 à 13:50:05

    Bonjour à tous, 

    Tout d'abord, j'aimerai vous dire, que je débute dans le SQL donc j'ai un niveau qui est très faible. 

    Une fois que mon utilisateur soit inscrit, il pourra participer à un événement, il aura juste à cliquer sur un bouton PARTICIPER, et à partir de ça j'aimerai faire la requête afin de remplir la base de donnée GDD.

    <form method="post">
        <button type="submit" class="btn btn-outline-danger" name="participer">Participer</button>
    </form>



    J'aimerai récupérer les données de la table users comme (l'id de l'utilisateur, son username, son email, et son type) & les compléter à partir de la table gdc.

    Je vous donne deux liens contenant les deux bases de données, afin d'éclairer un peu ce que je cherche à faire.

    img bdd_gdc : https://ibb.co/BqYBkbD

    img_bdd_users : https://ibb.co/1MPBk64

    Voilà j'aimerai que quelqu'un m'aide à faire la requête afin que lorsque la personne clique sur le bouton participer, il soit inscrit dans la table gdc.

    Je remercie d'avance, tout ceux qui prendront le temps pour m'aider car même en regardant les docs, cela ne m'aide pas... 

    -
    Edité par FlorentMirey1 1 septembre 2020 à 13:52:53

    • Partager sur Facebook
    • Partager sur Twitter
      1 septembre 2020 à 14:39:53

      Bonjour,

      Déjà, tu n'as pas besoin de répéter les données user d'une table à l'autre. Il te faut seulement récupérer l'id_user dans la table gdc.

      Ensuite, dans ton code tu dois stocker quelque part l'id de l'utilisateur connecté, le plus souvent dans une variable de session (si tu codes en PHP).

      Par ailleurs la colonne type de la table users a pour valeur par défaut 1 alors que tu as mis cette colonne en type VARCHAR ... INT (voire TINYINT UNSIGNED) serait plus approprié.

      Enfin, à mon humble avis je pense qu'il faut revoir ton modèle ...

      Tu as des utilisateurs et des GDC. Cela fait deux entités, donc deux tables.

      Un utilisateur peut faire plusieurs GDC, et une GDC peut regrouper plusieurs utilisateurs. C'est donc une relation n,n (plusieurs à plusieurs, ou many to many en anglais) qui implique la création d'une table de relation.

      Ton modèle serait donc :

      • utilisateur ( id_utilisateur [pk], pseudo, email, password, type, pdp, time )
      • gdc ( id_gdc [pk], title, etc. )
      • inscription ( id_user [pk][fk], id_gdc [pk][fk] )

      Dans la table utilisateur tu stockes tous les utilisateurs enregistré sur ton site.

      Dans la table GDC tu stockes toutes les GDC créées.

      Dans la table inscription tu stockes les inscriptions des utilisateurs aux GDC seulement avec le couple d'id ...

      pk = primary key (clé primaire)

      fk = foreign key (clé étrangère)

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        1 septembre 2020 à 14:47:08

        Merci @Benzouye pour ta réponse, 

        J'ai modifié tout ce que tu m'as dis pour la table gdc et j'ai crée la table inscription.

        Mais quels seront les requêtes pour stocker toutes les GDC créés de la table GDC, ainsi que la table inscription où l'on stockes les inscriptions des utilisateurs seulement avec le couple d'id ?

        Je ne maîtrise pas ces requêtes, pourrais-tu me les faire, et ensuite me donner la doc approprié afin que je comprenne comment tu as fais pour les réaliser stp ?

        • Partager sur Facebook
        • Partager sur Twitter
          1 septembre 2020 à 14:59:40

          Pour créer une GDC :

          INSERT INTO gdc ( title )
          VALUES ( 'Première GDC' );

          Pour créer un utilisateur :

          INSERT INTO utilisateur ( pseudo, email, password )
          VALUES ( 'benzouye', 'ben@zouye.com', 'superduratrouver' );

          Pour inscrire l'utilisateur ayant pour id 1 à la GDC ayant pour id 1 :

          INSERT INTO inscription ( id_utilisateur, id_gdc )
          VALUES ( 1, 1 );

          Si cela est au-dessus de ta compréhension, je t'encourage fortement à suivre le cours MySQL (cf. ma signature).

          Tu peux également te pencher sérieusement sur le document "Conception BDD" (cf. ma signature).

          -
          Edité par Benzouye 1 septembre 2020 à 15:01:41

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            1 septembre 2020 à 15:11:51

            Merci, je reviens vers toi après si cela m'a aidé !
            • Partager sur Facebook
            • Partager sur Twitter

            [SQL] Récupération de donnée d'une autre table

            × 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