EasyPHP Creation de tables avec jointures
Résolu
BoyDkr81
Messages postés
32
Date d'inscription
Statut
Membre
Dernière intervention
-
BoyDkr81 Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
BoyDkr81 Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un projet de gestion de salarié à effectuer qui comprend l'affichage, la suppression, la modification, l'ajout via un formulaire d'un salarié.
J'ai créé la base avec les différentes tables avec phpMyAdmin
Afficher: InnoDB free: 3072 kB (6 Enregistrements) carte_orange
Afficher: InnoDB free: 3072 kB (4 Enregistrements) categorie
Afficher: InnoDB free: 3072 kB; (`ID_Salarie`) REFER `asm/salarie`(`ID_Salarie`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Nature_Contrat`) REFER `asm/nature_contrat`(`ID_Nature_Contrat`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Profil_Contrat`) REFER `asm/profil_contrat`(`ID_Profil_Contrat`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Type_Contrat`) REFER `asm/type_contrat`(`ID_Type_Contrat`) ON DELETE NO ACTION ON UPDATE CASCADE (5 Enregistrements) contrat
Afficher: InnoDB free: 3072 kB (3 Enregistrements) diplome
Afficher: InnoDB free: 3072 kB (0 Enregistrements) emploi
Afficher: InnoDB free: 3072 kB (12 Enregistrements) langue
Afficher: InnoDB free: 3072 kB (2 Enregistrements) nature_contrat
Afficher: InnoDB free: 3072 kB (7 Enregistrements) pole_activite
Afficher: InnoDB free: 3072 kB (9 Enregistrements) prime
Afficher: InnoDB free: 3072 kB (3 Enregistrements) profil_contrat
Afficher: InnoDB free: 3072 kB; (`ID_Langue`) REFER `asm/langue`(`ID_Langue`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Salarie`) REFER `asm/salarie`(`ID_Salarie`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_1
Afficher: InnoDB free: 3072 kB; (`ID_Langue`) REFER `asm/langue`(`ID_Langue`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Prime`) REFER `asm/prime`(`ID_Prime`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_2
Afficher: InnoDB free: 3072 kB; (`ID_Prime`) REFER `asm/prime`(`ID_Prime`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Diplome`) REFER `asm/diplome`(`ID_Diplome`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_3
Afficher: InnoDB free: 3072 kB; (`ID_Salarie`) REFER `asm/salarie`(`ID_Salarie`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Categorie`) REFER `asm/categorie`(`ID_Categorie`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_4
Afficher: InnoDB free: 3072 kB; (`ID_Emploi`) REFER `asm/emploi`(`ID_Emploi`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Salarie`) REFER `asm/salarie`(`ID_Salarie`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_5
Afficher: InnoDB free: 3072 kB; (`ID_Situation_Familiale`) REFER `asm/situation_familiale`(`ID_Situation_Familiale`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Salarie`) REFER `asm/salarie`(`ID_Salarie`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_6
Afficher: InnoDB free: 3072 kB; (`ID_Carte_Orange`) REFER `asm/carte_orange`(`ID_Carte_Orange`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Salarie`) REFER `asm/salarie`(`ID_Salarie`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_7
Afficher: InnoDB free: 3072 kB; (`ID_Pole_Activite`) REFER `asm/pole_activite`(`ID_Pole_Activite`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Responsable_Marque`) REFER `asm/responsable_marque`(`ID_Responsable_Marque`) ON DELETE NO ACTION ON UPDATE CASCADE (4 Enregistrements) relation_8
Afficher: InnoDB free: 3072 kB; (`ID_Salarie`) REFER `asm/salarie`(`ID_Salarie`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Pole_Activite`) REFER `asm/pole_activite`(`ID_Pole_Activite`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_9
Afficher: InnoDB free: 3072 kB; (`ID_Diplome`) REFER `asm/diplome`(`ID_Diplome`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Salarie`) REFER `asm/salarie`(`ID_Salarie`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_10
Afficher: InnoDB free: 3072 kB (2 Enregistrements) responsable_marque
Afficher: InnoDB free: 3072 kB (5 Enregistrements) salarie
Afficher: InnoDB free: 3072 kB (5 Enregistrements) situation_familiale
Afficher: InnoDB free: 3072 kB (2 Enregistrements) type_contrat
Afficher: InnoDB free: 3072 kB (1 Enregistrements) user
ainsi que les pages html et php pour effectuer les différentes opérations.
Le code php fonctionne au niveau de l'affichage et de l'ajout(pour l'instant juste dans la table salarié).
Le fait est que j'ai des tables qui doivent êtres reliées entre elles comme la table contrat(voir ci-dessus) qui doit être relié avec les tables salarie, nature_contrat, type_contrat, type_contrat, profil_contrat et contenir les clés primaires de chacune de ces tables.
Ce que j'ai fait avec la gestion des relations en indexant les clés(voir ci-dessus) mais lorsque je veux faire une suppression dans la table salarié je n'y arrive pas car j'ai une erreur de type:
Erreur MySQL n°1217 : Impossible de supprimer un enregistrement père : une contrainte externe l'empêche.
Alors si quelqu'un connait une méthode pour que tout fonctionne nickel je serais très reconnaissant de m'en faire part.
Merci d'avance.
J'ai un projet de gestion de salarié à effectuer qui comprend l'affichage, la suppression, la modification, l'ajout via un formulaire d'un salarié.
J'ai créé la base avec les différentes tables avec phpMyAdmin
Afficher: InnoDB free: 3072 kB (6 Enregistrements) carte_orange
Afficher: InnoDB free: 3072 kB (4 Enregistrements) categorie
Afficher: InnoDB free: 3072 kB; (`ID_Salarie`) REFER `asm/salarie`(`ID_Salarie`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Nature_Contrat`) REFER `asm/nature_contrat`(`ID_Nature_Contrat`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Profil_Contrat`) REFER `asm/profil_contrat`(`ID_Profil_Contrat`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Type_Contrat`) REFER `asm/type_contrat`(`ID_Type_Contrat`) ON DELETE NO ACTION ON UPDATE CASCADE (5 Enregistrements) contrat
Afficher: InnoDB free: 3072 kB (3 Enregistrements) diplome
Afficher: InnoDB free: 3072 kB (0 Enregistrements) emploi
Afficher: InnoDB free: 3072 kB (12 Enregistrements) langue
Afficher: InnoDB free: 3072 kB (2 Enregistrements) nature_contrat
Afficher: InnoDB free: 3072 kB (7 Enregistrements) pole_activite
Afficher: InnoDB free: 3072 kB (9 Enregistrements) prime
Afficher: InnoDB free: 3072 kB (3 Enregistrements) profil_contrat
Afficher: InnoDB free: 3072 kB; (`ID_Langue`) REFER `asm/langue`(`ID_Langue`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Salarie`) REFER `asm/salarie`(`ID_Salarie`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_1
Afficher: InnoDB free: 3072 kB; (`ID_Langue`) REFER `asm/langue`(`ID_Langue`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Prime`) REFER `asm/prime`(`ID_Prime`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_2
Afficher: InnoDB free: 3072 kB; (`ID_Prime`) REFER `asm/prime`(`ID_Prime`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Diplome`) REFER `asm/diplome`(`ID_Diplome`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_3
Afficher: InnoDB free: 3072 kB; (`ID_Salarie`) REFER `asm/salarie`(`ID_Salarie`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Categorie`) REFER `asm/categorie`(`ID_Categorie`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_4
Afficher: InnoDB free: 3072 kB; (`ID_Emploi`) REFER `asm/emploi`(`ID_Emploi`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Salarie`) REFER `asm/salarie`(`ID_Salarie`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_5
Afficher: InnoDB free: 3072 kB; (`ID_Situation_Familiale`) REFER `asm/situation_familiale`(`ID_Situation_Familiale`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Salarie`) REFER `asm/salarie`(`ID_Salarie`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_6
Afficher: InnoDB free: 3072 kB; (`ID_Carte_Orange`) REFER `asm/carte_orange`(`ID_Carte_Orange`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Salarie`) REFER `asm/salarie`(`ID_Salarie`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_7
Afficher: InnoDB free: 3072 kB; (`ID_Pole_Activite`) REFER `asm/pole_activite`(`ID_Pole_Activite`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Responsable_Marque`) REFER `asm/responsable_marque`(`ID_Responsable_Marque`) ON DELETE NO ACTION ON UPDATE CASCADE (4 Enregistrements) relation_8
Afficher: InnoDB free: 3072 kB; (`ID_Salarie`) REFER `asm/salarie`(`ID_Salarie`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Pole_Activite`) REFER `asm/pole_activite`(`ID_Pole_Activite`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_9
Afficher: InnoDB free: 3072 kB; (`ID_Diplome`) REFER `asm/diplome`(`ID_Diplome`) ON DELETE NO ACTION ON UPDATE CASCADE; (`ID_Salarie`) REFER `asm/salarie`(`ID_Salarie`) ON DELETE NO ACTION ON UPDATE CASCADE (0 Enregistrements) relation_10
Afficher: InnoDB free: 3072 kB (2 Enregistrements) responsable_marque
Afficher: InnoDB free: 3072 kB (5 Enregistrements) salarie
Afficher: InnoDB free: 3072 kB (5 Enregistrements) situation_familiale
Afficher: InnoDB free: 3072 kB (2 Enregistrements) type_contrat
Afficher: InnoDB free: 3072 kB (1 Enregistrements) user
ainsi que les pages html et php pour effectuer les différentes opérations.
Le code php fonctionne au niveau de l'affichage et de l'ajout(pour l'instant juste dans la table salarié).
Le fait est que j'ai des tables qui doivent êtres reliées entre elles comme la table contrat(voir ci-dessus) qui doit être relié avec les tables salarie, nature_contrat, type_contrat, type_contrat, profil_contrat et contenir les clés primaires de chacune de ces tables.
Ce que j'ai fait avec la gestion des relations en indexant les clés(voir ci-dessus) mais lorsque je veux faire une suppression dans la table salarié je n'y arrive pas car j'ai une erreur de type:
Erreur MySQL n°1217 : Impossible de supprimer un enregistrement père : une contrainte externe l'empêche.
Alors si quelqu'un connait une méthode pour que tout fonctionne nickel je serais très reconnaissant de m'en faire part.
Merci d'avance.
A voir également:
- EasyPHP Creation de tables avec jointures
- Easyphp - Télécharger - Divers Web & Internet
- Creation de site web - Guide
- Creation de compte google - Guide
- Creation compte gmail - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
3 réponses
Bonjour,
En effet puisque tu à lié un ou plusieurs contrat a un salarié, tu ne peut pas supprimé le salarié.
Sinon il y aurai non respect de ta contraint d'intégrité.
Si tu veux pouvoir supprimer un salarié il faut qu'il n'est aucun contrat qui lui soit rattaché.
En effet puisque tu à lié un ou plusieurs contrat a un salarié, tu ne peut pas supprimé le salarié.
Sinon il y aurai non respect de ta contraint d'intégrité.
Si tu veux pouvoir supprimer un salarié il faut qu'il n'est aucun contrat qui lui soit rattaché.
BoyDkr81
Messages postés
32
Date d'inscription
Statut
Membre
Dernière intervention
OK et je fais comment alors je supprime quoi d'abord quelles sont les étapes alors pour supprimer un salarié dan smon cas?
J'ai pas tout lu ton code en faite et j'en ai un peu la flemme :p
Globalement il faut que tu supprime d'abord les éléments qui ne dépendent de rien.
Genre si tu a salarier qui a un ou plusieur contrat qui lui même peut avoir un ou plusieurs X.
Alors tu supprime d'abord les X correspondants au contrat, puis les contrats correspondant au salarier et enfin le salarier.
Je vais lire tout ton post, je répondrai mieu si tu a pas compris :p
Globalement il faut que tu supprime d'abord les éléments qui ne dépendent de rien.
Genre si tu a salarier qui a un ou plusieur contrat qui lui même peut avoir un ou plusieurs X.
Alors tu supprime d'abord les X correspondants au contrat, puis les contrats correspondant au salarier et enfin le salarier.
Je vais lire tout ton post, je répondrai mieu si tu a pas compris :p
Se serait vraiment sympa de ta part car j'avoue je suis perdu la ça fait 2 semaines que je n'arrive pas à supprimer un salarié avec toutes ses données dans toutes les tables et même d'en ajouter un.
En fait pour l'ajout cela fonctionne dans la table salarié mais je n'arrive pas par exemple après avoir renseigné tous les champs dans le formulaire de remplir les autres tables.
Merci de te pencher dessus.
En fait pour l'ajout cela fonctionne dans la table salarié mais je n'arrive pas par exemple après avoir renseigné tous les champs dans le formulaire de remplir les autres tables.
Merci de te pencher dessus.