Clé étrangère avec phpmyadmin
Résolu
tybmhi
Messages postés
200
Date d'inscription
Statut
Membre
Dernière intervention
-
suzana -
suzana -
Bonjour,
Voilà mon problème : J'ai crée une table nommé "post" ( champs: id Pseudo Lyrics) qui enregistre les messages postés par les internautes.
Sur une page php je fais apparaitre tous les messages dans la base de données en faisant une boucle avec la fonction "while". Jusque là tous va bien.
J'ai envie de rajouter un système de commentaire à chacun de ces messages.
J'ai donc créer une nouvelle table nommé "commentpost" (champ : id pseudo message )
Pour l'instant la seule que je suis arrivé a faire se répète pour tous les message (certainement à cause de la boucle)
Je voudrais donc savoir comment faire pour lier uniquement chaque message du commentaire au message poster par l'internaute. J'ai entendu parle de clé étrangère, de fonction "left join" etc... mais je suis débutant en la matière et je ne sait vraiment pas comment faire.
Merci d'avance
Voilà mon problème : J'ai crée une table nommé "post" ( champs: id Pseudo Lyrics) qui enregistre les messages postés par les internautes.
Sur une page php je fais apparaitre tous les messages dans la base de données en faisant une boucle avec la fonction "while". Jusque là tous va bien.
J'ai envie de rajouter un système de commentaire à chacun de ces messages.
J'ai donc créer une nouvelle table nommé "commentpost" (champ : id pseudo message )
Pour l'instant la seule que je suis arrivé a faire se répète pour tous les message (certainement à cause de la boucle)
Je voudrais donc savoir comment faire pour lier uniquement chaque message du commentaire au message poster par l'internaute. J'ai entendu parle de clé étrangère, de fonction "left join" etc... mais je suis débutant en la matière et je ne sait vraiment pas comment faire.
Merci d'avance
A voir également:
- Clé étrangère phpmyadmin
- Clé usb non détectée - Guide
- Clé windows 8 - Guide
- Formater clé usb - Guide
- Clé usb - Accueil - Stockage
- Clé bootable windows 10 - Guide
8 réponses
Bonsoir,
Il faut que tu rajoutes un champ à ta table de commentaire pour spécifier à quel post le commentaire se réfère. C'est ça la notion de foreign key.
Pour la création, avec MySQL tu vas donc avoir un truc semblable à :
Evidemment ce script est à adapter en fonction de tes besoins (ALTER TABLE si tes tables existent déjà...).
En ce qui concerne la requête sql, pour sélectionner tous les commentaires d'un post, tu pourras faire :
où post est donc l'identifiant du post. Pas besoin de jointure ici, c'est pas encore très compliqué.
Cordialement.
Il faut que tu rajoutes un champ à ta table de commentaire pour spécifier à quel post le commentaire se réfère. C'est ça la notion de foreign key.
Pour la création, avec MySQL tu vas donc avoir un truc semblable à :
CREATE TABLE posts (id INT NOT NULL, INDEX(id), pseudo VARCHAR(32), lyrics VARCHAR(30000), PRIMARY KEY(id) )TYPE=INNODB; CREATE TABLE comments (id INT NOT NULL, pseudo VARCHAR(32), message VARCHAR(3000) post_id INT NOT NULL, INDEX(post_id), PRIMARY KEY(id), FOREIGN KEY(post_id) REFERENCES posts(id) ON DELETE CASCADE) TYPE=INNODB;
Evidemment ce script est à adapter en fonction de tes besoins (ALTER TABLE si tes tables existent déjà...).
En ce qui concerne la requête sql, pour sélectionner tous les commentaires d'un post, tu pourras faire :
select id, pseudo, message from comments where post_id=post
où post est donc l'identifiant du post. Pas besoin de jointure ici, c'est pas encore très compliqué.
Cordialement.