Petit problème PHP/SQL

Résolu/Fermé
Umbriel Messages postés 46 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 29 mars 2012 - 14 févr. 2011 à 09:42
Umbriel Messages postés 46 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 29 mars 2012 - 14 févr. 2011 à 10:19
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

wazertyuiop Messages postés 32 Date d'inscription jeudi 10 février 2011 Statut Membre Dernière intervention 18 février 2011 1
14 févr. 2011 à 09:45
créer une table avoir avec en clé primaire
id membre & id livre et rajoute des champs comme tu l'entend
0
Umbriel Messages postés 46 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 29 mars 2012 4
14 févr. 2011 à 09:55
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
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
Umbriel Messages postés 46 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 29 mars 2012 4
14 févr. 2011 à 10:10
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
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
Umbriel Messages postés 46 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 29 mars 2012 4
14 févr. 2011 à 10:19
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