Bonjour à tous,

Je souhaite réaliser une requete d'insertion dont l'un des champs doit récupérer l'identifiant de l'option sélectionnée dans une liste déroulante.

Voici ma liste déroulante et la requête la générant :

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
 
//Affichage du formulaire 
$req2 = "select * from diplome";
$res2 = mysql_query($req2) or die ("Erreur requête 2");
?>
 
<form action="insert.php" method="POST">
<u><strong>Diplome</strong></u><br><br>
	<select>
	<?php
while ($tab = mysql_fetch_array($res2))
{
echo '<select name="diplome">
		  <option value=\"'.$tab['dip_num'].'\">'.$tab['dip_code'].'</option>
	  </select>';
	}
$diplome=$_POST['diplome'];	
?>
La page insert.php contient la requete d'insertion :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<?php
if(isset($_POST['dos_num']))      $dos_num=$_POST['dos_num'];
else      $dos_num="";
 
$diplome=$_GET['diplome'];
 
$sql = "INSERT INTO dossier(dos_num, dip_num) VALUES('$dos_num','$diplome')";
Le problème étant que le code diplome n'est pas récupéré et une erreur s'affiche :

Erreur SQL !INSERT INTO dossier(dos_num, dip_num) VALUES('5','')
Cannot add or update a child row: a foreign key constraint fails (`base/dossier`, CONSTRAINT `dossier_ibfk_16` FOREIGN KEY (`dip_num`) REFERENCES `diplome` (`dip_num`))

Le champ dip_num de l'option doit etre récupéré dans la page insert.php, mais je pense que je m'y prend mal.