Relation entre clé primaire et clé étrangère

Relation entre clé primaire et clé étrangère - SQL/NoSQL - Programmation

Marsh Posté le 28-01-2014 à 20:01:49    

Bonsoir,
 :??:  :(  
J'aimerais savoir si l'un d'entre vous sais commet faire une clé étrangère prendre directement les info d'une clé primaire
 
J'ai créer un formulaire d'inscription pour des clients
avec des tables différentes  
 
Première table : Client (Num_Client, prenom, nom, adresse, etc) Num_client est la clé primaore de la table Client
La deuxième table: Activité: (Nom_activité, jours, date, Num_Client) Num_Client ici est la clé etrangère
Et une troisième Table: Abonnement (Nom_abonnement, Moyen_P, etc, Num_client) Num_Client est également la clé étrangère ici
 
J'aimerais que lors de l'inscription du client qu'il soit automatiquement renseigner dans les tables le Num_Client
 
 
Je vous serai très reconnaissante !!!


Message édité par fofo97 le 29-01-2014 à 15:04:28

---------------
Merci ;)
Reply

Marsh Posté le 28-01-2014 à 20:01:49   

Reply

Marsh Posté le 29-01-2014 à 08:55:25    

Bonjour,
 
Si je comprend bien tu aimerais que lors de l'inscription d'un client, il soit directement "renvoyer" dans les deux autres tables?


---------------
Made you your own sentence without believing that of the others...
Reply

Marsh Posté le 29-01-2014 à 12:12:05    

Oui c'est bien ce que jveu

Reply

Marsh Posté le 29-01-2014 à 12:46:16    

Alors la clé étrangère va te faire automatiquement le lien entre ta table Client et les autres.
 
Ce qui signifie que si tu as bien fait tes relations lorsque tu va devoir ajouter une activité il va te demander forcement d'entrer le client.
 
Si a l'inscription tu veux que ce soit directement copier c'est un peux idiot.. Car tu aura une ligne vide ( sans activité ect...)
 
Dans ton formulaire, le choix de l'activité et/ou de l'abonnement est-il effectué à l'inscription?
 


---------------
Made you your own sentence without believing that of the others...
Reply

Marsh Posté le 29-01-2014 à 13:12:49    

oui ils sont éffectuer en même temps.

Reply

Marsh Posté le 29-01-2014 à 13:44:19    

Dans ce cas, lorsque tu fait ton traitement de rajout de l'utilisateur tu fait une requête INSERT avec le num_client ( en vérifiant d'abord qu'il existe dans la table Client )
 
Tu peux pas faire plus automatique à ma connaissance


---------------
Made you your own sentence without believing that of the others...
Reply

Marsh Posté le 29-01-2014 à 15:00:53    

je n'ai pas trop compris ton idée
 


Message édité par fofo97 le 29-01-2014 à 15:04:04

---------------
Merci ;)
Reply

Marsh Posté le 29-01-2014 à 15:02:47    

j'ai oublier de te dire que Num_Client et Auto Incré


Message édité par fofo97 le 29-01-2014 à 15:04:12

---------------
Merci ;)
Reply

Marsh Posté le 29-01-2014 à 15:29:27    

Pas de problème pour l'auto incrémentation
 
En clair à un moment après avoir entrer les informations dans ton formulaire tu doit avoir une requête du type
 
INSERT INTO Client (prenom, nom, adresse, etc) VALUES (prenom, nom, adresse, etc)
 
Tu va juste devoir faire pareil avec les autres tables en récupérant l'id qui vient d'être insérer  
 
$monDernierID = mysql_insert_id();
 
et ton insert pour une activité sera du style
 
INSERT INTO Activité(Nom_activité, jours, date, '$monDernierID') VALUES (Nom_activité, jours, date, '$monDernierID')
 
as-tu compris?


---------------
Made you your own sentence without believing that of the others...
Reply

Marsh Posté le 29-01-2014 à 18:38:10    

oui je te remercie je vais le faire de suite et je te dit  
 
Encore Merci ;)

Reply

Marsh Posté le 29-01-2014 à 18:38:10   

Reply

Marsh Posté le 29-01-2014 à 18:49:17    

j'ai une erreur qui s'affiche
 
"erreur insertion! you have an error in your SQL syntax; check the manual corresponds to your MySQL server version for the right syntax to use near'4) values('','','','4')' at line 1

Reply

Marsh Posté le 30-01-2014 à 10:00:38    

Regarde,  
 
Il te récupère ton id mais tu n'a mis aucune valeur avant ( si tu as spécifier valeur Non Null dans la base l'erreur est normal )
 
Sinon peut être juste une erreur de syntaxe dans ta requête ( probleme de guillement ect...)


---------------
Made you your own sentence without believing that of the others...
Reply

Marsh Posté le 30-01-2014 à 12:19:13    

ok merci je regarde ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed