Lier deux tables (clef etrangere)

WRInaute occasionnel
Salut,


je bosse actuellement sur un projet de site en PHP, c'est le tout début...

Je connais les bases du PHP et je me débrouille comme je peux...


Par contre j'ai un souci assez dérangeant que je n'arrive pas a résoudre :

J'ai une table "Membres" et une table "Messages" et je voudrais les lier pour que la clef primaire auto incrementé de "Membres" soit en clef étrangere pour "Messages".

Je lie donc comme ca (je crois que c'est la seule méthode...??dites moi si je me trompe) :



Code:
ALTER TABLE Messages
ADD CONSTRAINT Lien_membres_messages FOREIGN KEY (id_membres) REFERENCES Membres (id_membres)


La requete SQL est effectuée mais j'ai beau insérer des messages, la clef étrangere reste à 0...au lieu d'être identique à l'id primaire de "membres" comme souhaité...

J'ai verifier les Types des deux champs, ces sont les même...


SVP aidez moi au plus vite :cry:
 
WRInaute passionné
La contrainte ne sert qu'à assurer l'intégrité référentielle de ta base.
Ex : tu ne pourras pas supprimmer un membre s'il possède des messages dans la table message.

Par contre c'est à toi de faire les insert dans les 2 tables message et membre, ce n'est pas le système qui le fera automatiquement.

Si tu veux que ton SGBD fasse automatiquement les insert, il faudrait créer des Triggers.
Dans ce cas précis, l'option Trigger, n'est certainement pas une bonne option. C'est à toi de gérer tes insert à la mano.


Remarque : la valeur par défaut de ton champ id_membres dans ta table message a comme par valeur par défaut 0.
Il serait préférable de mettre NULL comme valeur par défaut.
 
WRInaute occasionnel
Merci pour ces précisions, reste à trouver une solution pour afficher les infos messages et infos membres (ceux ci liés pour chaques messages)
 
WRInaute occasionnel
C'est bon j'ai gerer. Il suffit de mettre une requete SELECT juste aprés avoir poster le compte membre (pour récuperer l'id membre)
 
Discussions similaires
Haut