Bonjour
J'ai un formulaire que j'utilise pour envoyer les données dans la base de données. Dans ma table d'insertion, il y a les clés étrangères d'autres tables. Comment puis-je les ajouter ? Comment récupérer les valeurs des clés étrangères pour les insérer dans ma table ? Merci pour votre aide !

Pour comprendre voici ma table d'insertion :
Nom : 127.0.0.1   127.0.0.1   bdchu   consultations   phpMyAdmin 4.1.4.png
Affichages : 4685
Taille : 428,2 Ko

Voici mon formulaire : formulaire2.php :

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>CHU Evreux - Enregistrement patient</title>
  <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
  <link rel="stylesheet" href="style.css">
</head>
 
<body>
 
 
 
<form class="form-search" method="post" action="traitement2.php">
 
 
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "bdchu";
 
// Create connection	  
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
//echo "Connected successfully"; 
?>
<legend>Patients enregistrés	
<select name="nompatient">
		    <?php
$sql1 = 'SELECT * FROM patients ';
$result1 = $conn->query($sql1);
if ($result1->num_rows > 0) {
 
	echo ('<option value="Nom" selected=""> Selectionnez un patient</option>');
 
 while($donnees1 = $result1->fetch_assoc()) {
 
 
       echo ('<option value="'.$donnees1['IdPatient'].'">'.$donnees1['Nom'].'&nbsp;'.$donnees1['Prenom'].'</option>');
      }
 
 
 
} 
else {
    echo "0 results";
}
//$conn->close();
?>  
 
</select>
</legend><br>
<!-- Bouton à supprimer il est inutile de valider le champ select -->
 
        <br>
 
 
<legend>Services
 
<select name="nomservice">
		    <?php 
 
 
$sql2 = 'SELECT * FROM services ';
$result2 = $conn->query($sql2);
if ($result2->num_rows > 0) {
 
 while($donnees2 = $result2->fetch_assoc()) {
 
 
       echo ('<option valeur="'.$donnees2['IdService'].'">'.$donnees2['NomService'].'</option>');
 
      }
 
} 
else {
    echo "0 results";
}
$conn->close();
 
?>
</select>
</legend><br>
 
 
<label for="DateConsul">La date de consultation</label>
<!-- Changer  datenaissance par DateConsul -->
       <input type="date" name="dateconsul" id="DateConsul"><br><br>
 
<label for="HeureConsul">L'heure de la consultation</label>
<!-- Changer  heureconsul par HeureConsul -->
       <input type="time" name="heureconsul" id="HeureConsul"><br><br>
 
<label for="ButConsul">Motif de consultation:</label>
<!-- Changer  butconsul par ButConsul -->
	<textarea name="butconsul" id="ButConsul" rows="5" cols="15" ></textarea><br><br>
 
    <input type="submit" value="Envoyer" />
</form>   
  <?php 
  //  include("footer.html");
  ?>
 
</body>
 
</html>
Voici le fichier de traitement du formulaire : traitement2.php
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>CHU Evreux - Enregistrement patient</title>
  <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
  <link rel="stylesheet" href="style.css">
</head>
 
<body>
 
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "bdchu";
 
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
//echo "Connected successfully"; 
 
// On vérifie si la variable existe et sinon elle vaut NULL
$n_patient = $_POST['nompatient'] ? $_POST['nompatient'] : NULL;
$n_service = $_POST['nomservice'] ? $_POST['nomservice'] : NULL;
$d_consul = $_POST['dateconsul'] ? $_POST['dateconsul'] : NULL;
$h_consul = $_POST['heureconsul'] ? $_POST['heureconsul'] : NULL;
$b_consul = $_POST['butconsul'] ? $_POST['butconsul'] : NULL;
 
//$requete1="SELECT IdPatient FROM patients WHERE Nom ='$n_patient' ";
//$requete2="SELECT IdService FROM services WHERE NomService ='$n_service' ";
 
//$result1= $conn->query($requete1);
//$result2=$conn->query($requete2);
 
 
//if (($result1->num_rows > 0) && ($result2->num_rows > 0)) {
 
	 //while($donnees1 = $result1->fetch_assoc()) {$id_patient=$donnees1['IdPatient'];} 
 
	 //while($donnees2 = $result2->fetch_assoc()) {$id_service=$donnees2['IdService'];}
 
function requete1()
{
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "bdchu";
	// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully"; 
 
// On vérifie si la variable existe et sinon elle vaut NULL
$n_patient = $_POST['nompatient'] ? $_POST['nompatient'] : NULL;
 
$sql = "SELECT IdPatient FROM patients WHERE Nom ='$n_patient' ";
$result = $conn->query($sql);
 
 
 
if ($result->num_rows > 0) {
    while($donnees = $result->fetch_assoc()) {
 
       $test=$donnees['IdPatient'];
	   echo ($test);
   }
 
} else {
    echo "0 results";
}
$conn->close();
 
	return $test;
}	 
 
$te=requete1();
 
     $sql = 'INSERT INTO consultations (IdConsul, fk_IdPatient, DateConsul, HeureConsul, ButConsul) 
VALUES("", "'.$te.'", "'.$d_consul.'" , "'.$h_consul.'", "'.$b_consul.'")';
    if ($conn->query($sql) === TRUE) {
    echo "les données ont bien étés insérées dans la base de données";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
 
$conn->close(); 
?>
 
  <?php 
    //include("footer.html");
  ?>
 
</body>
 
</html>