Bonjour,
Je cale depuis plusieurs jours sur un code que je voudrais vous soumettre.
Je souhaite faire un UPDATE dans ma bdd si et seulement si une option d'un menu déroulant est sélectionné (IF ma variable est isset), sinon je souhaite ne rien faire.
J'ai utilisé IF et ELSE.
Si ma variable est isset, je fais un UPDATE et là c'est OK.
Mais si c'est else (=ne rien faire) j'ai le message d'erreur suivant :
Parse error: syntax error, unexpected 'else' (T_ELSE) in /sites/paleocet/www/web_main/trait_modif.php on line 37
J'ai consulté les forums, il y a beaucoup de posts similaires mais aucun ne solutionne mon problème. J'ai consulté la doc https://www.php.net/ : rien à faire.
les "echo" sont là pour vérification.
Je vous remercie par avance si vous aviez une piste à me donner pour corriger mon erreur.
Evelyne31

Mon code :
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
// // TRAITEMENT du formulaire de modifications
 
// on teste la déclaration de notre variable d'envoi
if (isset($_POST['submit'])  ) 
//{
 
	// traitement du menu déroulant TYPE
	if (isset($_POST['ID_type']) ) {
 
		echo 'variable ID type pleine : ' . $_POST['ID_type'] . '<br>';
		// INSERT du nouveau TYPE
		$sql='UPDATE OBJECT
		SET ID_type = ? 
	 	WHERE ID_object = ?';
	 	try { 
	   	//la ligne qui lance la requête préparée
		$stmt = $base->prepare($sql);
	  	//on affecte les marqueurs précis sur les filtres
	  	//en vrai, vous aurez plutôt des variables de type POST envoyées par un formulaire
		$ID_type = $_POST['ID_type'];
		$ID_object=$_SESSION['ID_object'];
		//Attention, bien mettre dans l'ordre de la requête !
	   	$stmt->execute(array($ID_type,$ID_object)) ;
		}  catch (Exception $e) {
	  	//s'il y a un problème PHP ou SQL, tout s'affichera ici
		print "Erreur ! " . $e->getMessage() . "<br/>";		
		}
 
 
	else {  
	echo 'variable ID type vide : ' . $_POST['ID_type'] . '<br>';  
	}
	}
	}