Insérer une ligne PHPmyadmin selon plusieurs tables

AIDE
Invité n'ayant pas de compte PHPfrance

03 juin 2019, 13:19

Bonjour,

Dans php my admin j'ai deux tables :

-Une table "capteur" qui contient 4 lignes décrivant les 4 capteurs existant
-Une table lampadaire sur laquelle des capteurs sont installés

Mon formulaire permet de créer un lampadaire et de choisir les capteurs que l'on veut mettre dessus.
Pour savoir quel type de capteur est installé sur mon lampadaire, j'ai besoin d'aller récupérer dans la table capteur, l'identifiant du capteur via son nom pour la jointure.

Pour cela j'ai pensé à créer plusieurs requête :
-La première insère les éléments cochés dans le formulaire et créer la ligne
-La deuxième via le nom du capteur va chercher son identifiant dans l'autre table capteur
-La troisième insère cet identifiant dans la table lampadaire


Cependant, je n'ai aucune erreur lors de l'envoie du formulaire mais aucune ligne ne se créer dans la table lampadaire.
Je me demande si ce n'est pas une faute de manipulation des requêtes multiples dans mon code en PHP.
	if(isset($_POST['Luminosite'])AND $_POST['Luminosite']=='Luminosite' AND isset($_POST['$idc'])) {
	$bdd->beginTransaction();
	$sql = 'INSERT INTO lampadaire(Environnement,NOM_Capteur) VALUES (\''.$_POST['Environnement'].'\', \''.
	$_POST['Luminosite'].'\')';
	$idc = 'SELECT Identifiant_Capteur FROM capteur,lampadaire WHERE capteur.NOM_Capteur = lampadaire.NOM_Capteur';
	
	$complet ='INSERT INTO lampadaire(Identifiant_Capteur) VALUES (\''.$_POST['$idc'].'\')';

	$bdd -> exec($sql);
	$bdd->commit();
	$bdd -> exec($idc);
	$bdd->commit();
	$bdd -> exec($complet);
	$bdd->commit();
	
	}













Je vous remercie par avance.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

05 juin 2019, 00:46

Forcément si tu ne mets aucune gestion d'erreur c'est impossible de voir les erreurs et du coup impossible pour toi à débuguer.
Voici le lien vers la doc avec pas mal d'exemple :
https://www.php.net/manual/fr/pdo.error-handling.php
Quand tout le reste a échoué, lisez le mode d'emploi...