Problème de Foreign Key avec MySQL

cs_benoit74 Messages postés 3 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 2 décembre 2003 - 2 déc. 2003 à 14:04
Tomcube Messages postés 311 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 14 septembre 2004 - 2 déc. 2003 à 22:21
Bonjour
Voilà un mon cas:
CREATE TABLE `langues` (
  `IDLangue` char(3) NOT NULL,
  `Langue` varchar(20) NOT NULL default 'fr',
  `Traducteur` varchar(20),
  PRIMARY KEY (`IDLangue`)
);

INSERT INTO `LANGUES` VALUES ('fr', 'Français', '');
INSERT INTO `LANGUES` VALUES ('en', 'Anglais', '');
INSERT INTO `LANGUES` VALUES ('es', 'Espagnol', '');

CREATE TABLE `clients` (
  `IDClient` bigint(20) unsigned zerofill NOT NULL auto_increment,
  `Nom` varchar(20) NOT NULL default '',
  `Prenom` varchar(20) NOT NULL default '',
  `Adresse` varchar(50) default NULL,
  `Ville` varchar(20) NOT NULL default '',
  `Langue` char(3) NOT NULL default 'fr',
  FOREIGN KEY (Langue) references langues(IDLangue) ON DELETE CASCADE,
  PRIMARY KEY  (`IDClient`)
);

puis je voudrais faire qqchose du genre:
INSERT INTO `clients` VALUES (null, 'monnom', 'monprénom', 'monadresse', 'maville', (SELECT IDLangues FROM langues WHERE Langue='Français'));

Marlheusreusement le select n'a pas l'r de vouloir fonctionner (alors que j'avais déjà pu faire ça avec Oracle...).
Le but final est de récupérer la langue par un combobox (contenant toutes les langues de la table langue) et la mettre directement dans ce select. Mais je suis déjà bloqué là :(
J'attends vos idées...

1 réponse

Tomcube Messages postés 311 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 14 septembre 2004 1
2 déc. 2003 à 22:21
Il faut que tu fasse dans l'ordre ... c'est à dire :
- Un select mis à jour dynamiquement qui sera du type :
<select name="langue" size="1">
<option value="valeur du champ IDLangues">valeur du champ Langue</option>
</select>

-Après tu récupère l'ID avec :
$IDLangue = $_POST["langue"];

-Enfin tu fait ton insert :
"INSERT INTO `clients` VALUES (null, 'monnom', 'monprénom', 'monadresse', 'maville', '$IDLangue');

ça devrait marcher ...
0
Rejoignez-nous