Bonjour,

Je me permet de vous contacter car je suis en train de faire un petit programme un PHP pour faire un inventaire de moulins et en fait quand j'ajoute un nouveau moulin dans ma table moulin ca marche bien mais j'ai besoin de récupérer l'ID de ce dernier ajout pour l'utiliser dans une table de liaison pour associer mon moulin à une commune mais j'ai des problèmes.....


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
// AJOUT MOULIN
	if ($action == add) {
 
		//Vérification si CodeMoulin existe déja
		try
			{
				$bdd = new PDO('mysql:host=localhost;dbname=inventaire;charset=utf8', 'USER', 'PASSWORD');
			}
		catch(Exception $e)
			{
					die('Erreur : '.$e->getMessage());
			}
		//
		//On verifie si µCodeMoulin existe déja ou pas, si il existe alors AddError=1
		//
		$reponse = $bdd->query('SELECT CodeMoulin FROM Moulins');
 
		foreach($reponse as $element)
		{
			$NewCode = $element[CodeMoulin];
			if ($CodeMoulin == $NewCode) {
				//echo "Erreur CodeMoulin déja existant";
				$AddError="1";
				//echo $element[CodeMoulin];
			}
		}
 
		//Verifications
		//Si CodeMoulin existe déja
		if ($AddError == 1) {
			echo "Erreur CodeMoulin déja existant";
		}
		elseif ($AddError == 2)	{
			echo "Erreur 2";
		}
		//Sinon pas d'erreur
		else {		
			echo "Ajout Moulin";
			//
			//Ajout du moulin
			//
			$req = $bdd->prepare('INSERT INTO Moulins(NbrRVert, NbrRHori, TypeRoue, TypeMachine, Production, Tamisage, CourEau, DateConstruction, Lat, Lon, Informations, Etat, CodeMoulin, NomMoulin) VALUES(:NbrRVert, :NbrRHori, :TypeRoue, :TypeMachine, :Production, :Tamisage, :CourEau, :DateConstruction, :Lat, :Lon, :Informations, :Etat, :CodeMoulin, :NomMoulin)');
			$req->execute(array(
				'NbrRVert' => $NbrRVert,
				'NbrRHori' => $NbrRHori,
				'TypeRoue' => $TypeRoue,
				'TypeMachine' => $TypeMachine,
				'Production' => $Production,
				'Tamisage' => $Tamisage,
				'CourEau' => $CourEau,
				'DateConstruction' => $DateConstruction,
				'Lat' => $Lat,
				'Lon' => $Lon,
				'Informations' => $Informations,
				'Etat' => $Etat,
				'CodeMoulin' => $CodeMoulin,
				'NomMoulin' => $NomMoulin
			));
 
			//Recupération de IDMoulin en fonction de CodeMoulin (qui est censé être unique)
			//echo "Codemoulin:".$CodeMoulin;
			//$requete="$bdd->query('SELECT IDMoulin FROM Moulins WHERE CodeMoulin=".$CodeMoulin.");";
 
			//$reponse = $bdd->query('SELECT IDMoulin FROM Moulins WHERE CodeMoulin=11');
			//$reponsee = $bdd->query('SELECT * FROM Moulins');
			//echo $reponse;
			//print_r ($reponsee);
 
 
 
			//Ajout de l'IDCommune et IDMoulin dans la table CommuneMoulin
		//	$req = $bdd->prepare('INSERT INTO CommuneMoulin(IDCommune, IDMoulin) VALUES(:IDCommune, :IDMoulin)');
		//	$req->execute(array(
		//		'IDCommune' => $IDCommune,
		//		'IDMoulin' => $IDMoulin
		//	));
 
 
			echo 'Le Moulin a bien été ajouté !';
			//header('Location: index.php'); 
		}

Comme vous pouvez le voir j'ai essayé :

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
//Recupération de IDMoulin en fonction de CodeMoulin (qui est censé être unique)
			//echo "Codemoulin:".$CodeMoulin;
			$requete="$bdd->query('SELECT IDMoulin FROM Moulins WHERE CodeMoulin=".$CodeMoulin.");";
 
			//$reponse = $bdd->query('SELECT IDMoulin FROM Moulins WHERE CodeMoulin=11');
			//$reponse = $bdd->query('SELECT * FROM Moulins');
			echo $requete;
			print_r ($requete);
 
 
 
			//Ajout de l'IDCommune et IDMoulin dans la table CommuneMoulin
			$req = $bdd->prepare('INSERT INTO CommuneMoulin(IDCommune, IDMoulin) VALUES(:IDCommune, :IDMoulin)');
			$req->execute(array(
				'IDCommune' => $IDCommune,
				'IDMoulin' => $IDMoulin
			));
Mais ça ne fonctionne pas, ça ne me retourne jamais rien.... (à part 'Le Moulin a bien été ajouté !')

J'ai également essayé : SELECT LAST_INSERT_ID() FROM Moulins mais ca ne me retourne rien non plus et j'ai un peu de mal à comprendre pourquoi ca ne retourne rien.

Quelqu'un a une idée ?

Merci par avance