Bonjour à tous, je souhaiterai avoir votre avis sur une requette sql concernant une entité faible
Voici le mcd :
Si je comprend bien configrando peut avoir plusieurs enregistrement avec le CodeRandonnee de la table FicheRandonnee ?
Dans le mcd la table configrando à codeconfigrando qui est auto_incrément pourtant à la génération des tables l'auto_increment disparait,
c'est a ce niveau que je suis perdu comment je doit faire pour que lorsque je fait un INSERT INTO dans configrando le CodeConfigRando s'auto incrémente.
Actuellement lors d'un INSERT INTO dans configrando je rentre l'identifiant CodeRandonnee de ficherandonnee dans les champs `CodeRandonnee` et `CodeConfigRando` requette $sql2 plus bas
Pourriez vous me dire si c'est la bonne methode.
Voici le script pour la création des tables :
La requette que j'envoi pour l'insertion dans la table ficherandonnee :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 #------------------------------------------------------------ # Table: FicheRandonnee #------------------------------------------------------------ CREATE TABLE FicheRandonnee( CodeRandonnee Int Auto_increment NOT NULL , Distance Decimal , Denivele Int , Difficulte Varchar (50) NOT NULL , Lieu Varchar (150) NOT NULL , Latitude Float NOT NULL , Longitude Float NOT NULL , CodePostal Char (5) NOT NULL , Duree Time , AltMin Int , AltMax Int , CodeActivite Int NOT NULL ,CONSTRAINT FicheRandonnee_PK PRIMARY KEY (CodeRandonnee) ,CONSTRAINT FicheRandonnee_Activiter_FK FOREIGN KEY (CodeActivite) REFERENCES Activiter(CodeActivite) )ENGINE=InnoDB; #------------------------------------------------------------ # Table: ConfigRando #------------------------------------------------------------ CREATE TABLE ConfigRando( CodeRandonnee Int NOT NULL , CodeConfigRando Int NOT NULL , NbrMaxi Int NOT NULL , Familliale Bool NOT NULL , Description Varchar (255) NOT NULL , RdvDepart Varchar (150) NOT NULL , NomRandonnee Varchar (150) NOT NULL , PhotoRandonnee Varchar (150) NOT NULL ,CONSTRAINT ConfigRando_PK PRIMARY KEY (CodeRandonnee,CodeConfigRando) ,CONSTRAINT ConfigRando_FicheRandonnee_FK FOREIGN KEY (CodeRandonnee) REFERENCES FicheRandonnee(CodeRandonnee) )ENGINE=InnoDB;
et la requette pour l'insertion dans configrando :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $sql1 = "INSERT INTO ficherandonnee (`Distance`, `Denivele`, `Difficulte`, `Lieu`, `Latitude`, `Longitude`, `CodePostal`, `Duree`, `AltMin`, `AltMax`, `CodeActivite`) VALUES ('".$valueClean['distance']."', '".$valueClean['denivele']."', '".$valueClean['var_niveau']."', '".$valueClean['lieu_rando']."', '".$valueClean['latitude']."', '".$valueClean['longitude']."', '".$valueClean['codePostal']."', '".$valueClean['duree']."', '".$valueClean['alt_min']."', '".$valueClean['alt_max']."', $id_activite)";
Je récupère $codeRandonnee après l'insertion dans ficherandonnee grace a une requette :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $sql2 = "INSERT INTO configrando (`CodeRandonnee`, `CodeConfigRando`, `NbrMaxi`, `Familliale`, `Description`, `RdvDepart`, `NomRandonnee`, `PhotoRandonnee`) VALUES ('$codeRandonnee', '$codeRandonnee', '".$valueClean['nbr_participant']."', '".$valueClean['familiale']."', '".$valueClean['description_rando']."', '".$valueClean['RdvDepart']."', '".$valueClean['titre_rando']."', '".$valueClean['photo_Rando']."')";
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $row = "SELECT CodeRandonnee FROM pratiquer, activiter, ficherandonnee WHERE pratiquer.CodeActivite = activiter.CodeActivite and activiter.CodeActivite = ficherandonnee.CodeActivite and pratiquer.CodeUtilisateur = '$this->id_utilisateur' and ficherandonnee.CodeActivite = '$id_activite' and ficherandonnee.Lieu = '$lieu'";
Partager