Petit problème PHP/SQL

Résolu
Umbriel Messages postés 53 Statut Membre -  
Umbriel Messages postés 53 Statut Membre -
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. wazertyuiop Messages postés 47 Statut Membre 1
     
    créer une table avoir avec en clé primaire
    id membre & id livre et rajoute des champs comme tu l'entend
    0
  2. Umbriel Messages postés 53 Statut Membre 4
     
    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.
    0
  3. Kazer
     
    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
    0
  4. Umbriel Messages postés 53 Statut Membre 4
     
    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 ?
    0
    1. Kazer
       
      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 ^^
      0
    2. Umbriel Messages postés 53 Statut Membre 4
       
      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.
      0