Bonjour et tout d’abord MERCI à tous les bénévole du net qui m’ont permis de progresser de façon autodidacte.
Depuis un mois, je recherche une solution dans tous les sens, en vain pendant des heures. C’est pourquoi, je sollicite votre aide précieuse pour trouver une solution et comprendre la raison de la non mise à jour des données.
Mon problème :
J’ai constitué une base SQL dbbase avec la table « trbp : id_rbp – rbp - id_programme »
Cherchant à constituer une liste déroulante permettant d’afficher une valeur « rbp : 'Try 1', 'Try 2', 'Try 3', 'Try 4'), j’ai réussi à afficher la liste déroulante avec les valeurs et les données à modifier, mais, je ne les mettre à jour.

1/ Base SQL
Structure de la table `trbp`
CREATE TABLE `trbp` (
`id_rbp` INT (2) auto_increment,
`rbp` varchar(255) default '',
`id_programme` varchar (2) default '',
PRIMARY KEY (`id_rbp`)
);
--
Contenu de la table `trbp`

INSERT INTO `trbp` VALUES ('1', 'Try 1', '4');
INSERT INTO `trbp` VALUES ('2', 'Try 2', '2');
INSERT INTO `trbp` VALUES ('3', 'Try 3', '7');
INSERT INTO `trbp` VALUES ('4', 'Try 4', '3');
-- --------------------------------------------------------

2/ index.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
111
112
113
114
<!DOCTYPE html>
<html>
<meta charset="utf-8" />
<head>
<title>RBP Affiche et Modifie sur liste déroulante</title>
</head>
<body>
 
<h2>Modification de la liste RBP</h2>
<p>Sélectionner intitulé RBP</p>
<p>=>Formulaire 1 :</p>
<form name="affiche" action="" method="POST">
<?php
// pour faire un menu déroulant présenter les différentes rubriques
echo "<select name='rbp' onChange='FocusObjet()'>";
try
{
	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
	$pdo_options[PDO::ATTR_EMULATE_PREPARES] = false; //important sur les configs récentes
	$pdo_options[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES utf8"; //pour l'utf-8
	$pdo_options[PDO::MYSQL_ATTR_USE_BUFFERED_QUERY] = true;
	$bdd = new PDO('mysql:host=localhost;dbname=dbbase', 'root', '', $pdo_options);
}
catch (Exception $e)
{
	die('Erreur : ' . $e->getMessage());
}
$reponse = $bdd->query('SELECT DISTINCT rbp FROM trbp');
echo "<OPTION SELECTED VALUE='RBP à sélectionner'>RBP</OPTION>";
while ($donnees = $reponse->fetch())
{
	$rbp = (string)$donnees['rbp'];
	echo "<OPTION VALUE='$rbp'> $rbp </OPTION>\n";
}
echo "</select>";
?>
<table width="300" border="0">
  <tr>
    <td><input type="reset" value="Effacer" style="position:relative;left:10"></td>
    <td><input type="submit" value="Afficher les données RBP" style="position:relative;left:10"></td>
  </tr>
</table>
</form>
<?php
/* Connexion à la base de données */
include("connexion.inc.php");
// On récupère tout le contenu de la table trbp (de dbbase où l'on s'est connecté)
// Les valeurs utilisées dans la requête sont marqués avec le ? espace réservé
$reponse = $dbh->prepare('SELECT * FROM trbp WHERE  rbp = ?'); 
// Exécuter la requête. Passez à l'un tableau énumérant les valeurs à utiliser dans la requête
$reponse->execute(array($_POST['rbp']));  
// Obtenir les résultats
$results = $reponse->fetchAll(); 
foreach ($results as $row) {
    print '<p><b>Voici l\'enregistrement à modifier :</b><br/>RBP : '.$row['rbp'].' <br />Id RBP :'.$row ['id_rbp'].'<br />Programme : '.$row['id_programme'].'</p>';
}
?>
 
<p>=>Formulaire 2 :</p>
<form name="update" action="" method="POST">
<?php
$message = ''; // fonctionne si supprimé
$id_rbp = ''; // fonctionne si supprimé
$rbp = ''; // fonctionne si supprimé
$id_programme = ''; // fonctionne si supprimé
 
// La page d'insertion 
if ( isset( $_POST['rbp'])) {
 
/* Connexion à la base de données avec PDO */
include("connexion.inc.php"); // fonctionne si supprimé
$rbp = $_POST['rbp'];
 
/* "SELECT" étoile => On sélectionne tous les champs "FROM" de la table rbp */
$sql = "SELECT * FROM trbp";
$resultat = $dbh->query($sql);
/* echo : Liste des enregistrements*/
while ($row = $resultat->fetch(PDO::FETCH_ASSOC)) {
If ($row['rbp'] == $rbp) /* Si vrai on exécute ce qui se trouve entre les crochets */
{
$id_rbp = $row['id_rbp'];
$rbp = $row['rbp'];
$id_programme = $row['id_programme'];
}}
/* echo $id_programme and UPDATE */
if ( isset( $_POST['id_programme'] )) {
if ( $_POST['id_programme'] != '') {
$id_programme = $_POST['id_programme'];
// Avec une requête préparée
$req = $dbh->prepare('UPDATE trbp SET id_programme = :id_programme WHERE rbp = :rbp');
$req->execute(array('rbp' => $rbp,'id_programme' => $id_programme));
}}
// Fermeture de la connexion
$dbh = NULL;
}else{
$message = '<span style="color: red"> => Sélectionner un RBP</span>';
}
if ( $rbp != '' ) {
$message = '<span style="color: red"> Intitulé RBP sélectionné :</span>';
}
?>
<p>=>Repère 3 :</p>
<p><?php echo '<span style="color: red">'.$message.'</span>' ?><br><?php print $rbp; ?></p>
<p><b>Entrez les nouvelles données ci-dessous, puis cliquez sur 'Modifier' :</b></p>
<p>Modifiez id_programme : <input type="text" name="id_programme" row="3" size="3" maxlength="3" value="<?php print $id_programme; ?>"> puis cliquez sur 'Modifier'</p>
<table width="300" border="0">
  <tr>
    <td><input type="reset" value="Annuler" style="position:relative;left:10"name="Lien_index" onclick="self.location.href='../after/index.php'"></td>
    <td><input type="submit" value="Modifier les données du RBP" style="position:relative;left:10"></td>
  </tr>
</table>
</form>
</body>
</html>
Si je remplace le début du repère 3 en supprimant tout le début, jusqu’au formulaire, cela fonctionne, mais je n’ai plus de liste déroulante. Comment faire fonctionner UDAPTE avec une liste déroulante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<form method="post" action=""> Entrez RBP ici puis 'Envoyer' (on modifierea après) : <br>
RBP  : <input type="text" name="rbp" value="<?php print $rbp; ?>"> 
<?php echo '<span style="color: red">'.$message.'</span>' ?><br>
<input type="submit" name="submit" value="Envoyer ><br><br>
Merci pour votre aide très précieuse !