Petit problème PHP/SQL

Résolu
Bonjour,

J'ai un petit problème de liaison

J'aimerais que mes membres puisse enregistrer les livres qu'ils possèdent.

J'ai 2 tables SQL.

Table membre :
id - pseudo - email - date_inscr - pwd
1 - Machin - a@a.fr - 00-00-0000 - ******
2 - Truc - a@a.fr - 00-00-0000 - ******


Table livre
id - titre - auteur - éditeur
1 - Farenheit 451 - bidule - trucmuche
2 - L'assomoir - bidule - trucmuche
3 - Le Petit Chaperon Rouge - bidule - trucmuche
4 - L'oeil du loup - bidule - trucmuche
5 - Tintin, le sceptre d'Otockar - bidule - trucmuche


Machin à les livres 1, 3 et 4
Truc à les livres 2, 3 et 5

Comme vous pouvez le voir, les 2 membres ont le livre Le Petit Chaperon Rouge,
Comment faire pour que les 2 membres pointent sur ce même livre ?

J'ai trouvé que 1 piste pour l'instant, c'est mettre un champ à la table membre 'livre qu'il possède'

ou pour l'enregistrement d'id 1 aurait la valeur '1,3,4'
pour l'enregistrement d'id 2, il aurait la valeur '2,3,5'

puis utiliser un explode dans mon php

Mais cela me semble tout de même compliqué à mettre en place et si le membre veut supprimer un livre qu'il possède.

Auriez-vous une petit idée de comment je devrais procéder ?

4 réponses

  1. créer une table avoir avec en clé primaire
    id membre & id livre et rajoute des champs comme tu l'entend
    1. Créer une table lien
      id_membre&id_livre

      Je ne me rappel plus comment ça s'appelle et non plus comment les gérer par la suite.
      1. Je suis d'accord avec les deux réponses du dessus. Il faut que tu crées une table qui va lier tes deux tables actuelles. Dans ta nouvelle table , tu mets leur clé en clé étrangère sur tes deux tables.

        =>
        Table membre :
        id - pseudo - email - date_inscr - pwd
        1 - Machin - a@a.fr - 00-00-0000 - ******
        2 - Truc - a@a.fr - 00-00-0000 - ******

        Table de Lien :
        Id_membre => Clé primaire + clé étrangere sur membre.id
        Id_livre => Clé Primaire + clé étrangere sur livre.id

        Table livre
        id - titre - auteur - éditeur
        1 - Farenheit 451 - bidule - trucmuche
        2 - L'assomoir - bidule - trucmuche
        3 - Le Petit Chaperon Rouge - bidule - trucmuche
        4 - L'oeil du loup - bidule - trucmuche
        5 - Tintin, le sceptre d'Otockar - bidule - trucmuche

        Apres, c'est ce que je pense, il se peut que sa soit faux. Bonne journée
        1. Comme enregistrements dans ma table lien, j'aurait :

          1 - 1
          1 - 3
          1 - 4
          2 - 2
          2 - 3
          2 - 5

          ???

          Si j'ai 200 membres qui ont chacun 10 livres au hasard ça ne posera pas de problème ?
          1. Non, ce ne sont que des liens, après dans ta requète tu peux par exemple mettre :

            Select membre.pseudo, livre.titre from membre inner join lien on membre.id = lien.Id_membre inner join livre on lien.Id_livre = livre.id where membre.id = 2;

            Si je me suis pas trompé, sa devrait t'afficher tous les livres que le membre d'id 2 a. Tu peux biensur mettre ce que tu veux dans le Select et le Where ^^
          2. Ok, je vous remercie de m'avoir aidé, je vais faire ça tout à l'heure :).

            Je reviendrais vous dire si ça fonctionne bien ou si j'ai encore un problème.