Rechercher : dans
Par :

EasyPHP Creation de tables avec jointures

Dernière réponse le 15 mai 2008 à 16:12:03 BoyDkr81, le 15 mai 2008 à 15:35:36 
 Signaler ce message aux modérateurs

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.

Configuration: Windows XP
Firefox 2.0.0.14

Meilleures réponses pour « EasyPHP Creation de tables avec jointures » dans :
MySQL - Chargement d'un fichier texte dans une table VoirPour charger une fichier texte défini comme suit : $ tail /home/user1/test.txt 'nom1',1,9 'nom2',2,3 'nom3',3,54 'nom4',4,2 'nom5',5,9 Dans une table définie comme suit : CREATE TABLE chargertest ( ...
MySQL - Supprimer des doublons dans une table VoirPour supprimer des doublons au niveau d'une table donnée définie comme suit : CREATE TABLE IF NOT EXISTS TabTest ( cle_prim integer(4) NOT NULL auto_increment, x integer, y integer, z integer, ...
SQL - Création de table VoirLe SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. La création de tables Le création de tables se fait à l'aide du couple de mots-clés CREATE...
VBScript - Les fonctions de manipulation de tableaux VoirLes fonctions de manipulation de tableaux Fonction Description Array(arglist) Crée un Variant contenant un tableau. L'argument arglist est la liste des valeurs, séparées par des...

1

Thanahthaus, le 15 mai 2008 à 15:41:29

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é.

Répondre à Thanahthaus

2

BoyDkr81, le 15 mai 2008 à 15:43:18

OK et je fais comment alors je supprime quoi d'abord quelles sont les étapes alors pour supprimer un salarié dan smon cas?

Répondre à BoyDkr81

3

Thanahthaus, le 15 mai 2008 à 15:46:15

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

Répondre à Thanahthaus

4

BoyDkr81, le 15 mai 2008 à 15:55:51

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.

Répondre à BoyDkr81

5

Thanahthaus, le 15 mai 2008 à 16:08:28

Hum... Je comprend pas tout à ce que tu à posté...
N'étant malheureusement pas expert en base de données, je ne pourrai pas t'aider plus que ça.
Désolé.

Répondre à Thanahthaus

6

 BoyDkr81, le 15 mai 2008 à 16:12:03

OK merci quand même.

Répondre à BoyDkr81
Collection CommentÇaMarche.net